Страницы

Поиск по вопросам

суббота, 4 января 2020 г.

SQL ORDER BY подскажите как отсортировать по нескольким условиям

#sql #postgresql


Доброго времени суток

подскажите как отсортировать по нескольким условиям (SQL ORDER BY )

допустим таблица 

A(row_num) B(аттрибут),C(name)

нужна, сортировка по алфавиту по столбцу 'С'(имени), но так чтобы чтобы первыми были
записи те, где B = null(а может не только null, а какой либо еще параметр должен быть
приоритетным)

база postgresql

 условно должно выйти:

1  null   Петя           --идет раньше Андрея т.к. null
2  33     Андрей
3  20     Петр
4  454    Яна

    


Ответы

Ответ 1



select * from table order by case when attr is null then 0 else 1 end, name

Ответ 2



Можно поступить следующим образом SELECT * FROM tbl ORDER BY attr IS NOT NULL, name

Ответ 3



SELECT * FROM (SELECT * FROM table WHERE B IS NULL order by C) t1 union ALL SELECT * FROM (SELECT * FROM table WHERE NOT B IS NULL order by C) t2

Комментариев нет:

Отправить комментарий