SQL-запрос, в котором каждый элемент всегда помещается последним

129
15

У меня есть этот запрос, который отобразит содержимое таблицы по его идентификатору, который может быть отсортирован, но у меня есть эта информация, которую я всегда хочу отобразить на последней части, из-за некоторых обстоятельств я не могу просто изменить свой идентификатор сортировки на последнего номера.

Примерная таблица:

sort_id | data |
0 | dog |
1 | cat |
2 | bear |
3 | wolf |

Я хочу, чтобы это отображалось следующим образом: собака, кошка, волк, медведь, где медведь - это постоянное значение, которое всегда должно отображаться последним.

Это возможно?

спросил(а) 2013-04-29T23:23:00+04:00 7 лет, 5 месяцев назад
1
Решение
91

Заказ по заявлению дела будет работать

Select *
FROM
table1
ORDER BY
case when data = 'bear' then 1 else 0 End,
sort_id

DEMO

ответил(а) 2013-04-29T23:28:00+04:00 7 лет, 5 месяцев назад
71

SELECT * FROM table1 ORDER BY data='bear',sort_id

ответил(а) 2013-04-29T23:28:00+04:00 7 лет, 5 месяцев назад
57

Что-то вроде следующего

SELECT data
FROM table
ORDER BY
CASE WHEN data = 'bear' THEN 1 ELSE 0 END,
sort_id

Нам нужно ввести понятие сортировки о том, являются ли данные "bear" или нет, прежде чем сортировать по sort_id.

ответил(а) 2013-04-29T23:29:00+04:00 7 лет, 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема