Возможно ли отсортировать булевое значение используя ORDER BY
У меня есть таблица где я фильтрую списки используя ORDER BY ('asc' и 'desc'). Так же в таблице есть булевые значения(избранное) и вот они у меня не фильтруются. Есть ли в ORDER BY способ для фильтрации булевых значений?
Ответы (2 шт):
Автор решения: microup
→ Ссылка
да это можно делать, попробуйте это следующим образом:
ORDER BY
CASE WHEN boolean_column = true THEN 1 ELSE 0 END DESC,
-- Другие колонки, по которым вы хотите сортировать
тут есть маленький момент - значения с true в колонке boolean_column будут выше в списке, чем значения со значением false. Это делается с помощью выражения CASE, которое возвращает 1 для значений true и 0 для значений false, и сортировки этой колонки по убыванию.
надеюсь не много помог)
Автор решения: fox
→ Ссылка
Смотря что за СУБД. В postgress вполне работает:
order by f1 desc
Или так:
order by (f1 is true) desc
Отсортирует как true, false, null