Возможно ли отсортировать булевое значение используя ORDER BY

Рейтинг: 0Ответов: 2Опубликовано: 13.02.2023

У меня есть таблица где я фильтрую списки используя ORDER BY ('asc' и 'desc'). Так же в таблице есть булевые значения(избранное) и вот они у меня не фильтруются. Есть ли в ORDER BY способ для фильтрации булевых значений?

Ответы

▲ 2Принят

да это можно делать, попробуйте это следующим образом:

    ORDER BY
      CASE WHEN boolean_column = true THEN 1 ELSE 0 END DESC,
       -- Другие колонки, по которым вы хотите сортировать

тут есть маленький момент - значения с true в колонке boolean_column будут выше в списке, чем значения со значением false. Это делается с помощью выражения CASE, которое возвращает 1 для значений true и 0 для значений false, и сортировки этой колонки по убыванию.

надеюсь не много помог)

▲ 1

Смотря что за СУБД. В postgress вполне работает:

order by f1 desc

Или так:

order by (f1 is true) desc

Отсортирует как true, false, null