Моя таблица имеет три булевых поля: f1, f2, f3. Если я делаю
SELECT * FROM table ORDER BY f1, f2, f3
записи будут отсортированы по этим полям во лжи порядка, верной, пустой. Я хочу заказать им с пустым указателем промежуточную истину и ложь: правильный порядок должен быть верным, пустым, ложным.
Я использую PostgreSQL.
Некрасиво, но должно работать:
... order by (case when f1 then 1 when f1 is null then 2 else 3 end) asc