我需要对下表进行排序:
id accepted priority
156 NULL 3
157 t 6
158 t 2
159 f 5
160 f 3
以这样的方式首先排序是基于“已接受”列,然后是基于优先级。 我能够在某种程度上做到:
ORDER BY accepted DESC , priority DESC
但是我想要以这样一种方式显示列表,即接受为NULL的行伴随着被接受为真的行,然后子排序将基于优先级。
因此,我需要的最终表是:
id accepted priority
157 t 6
156 NULL 3
158 t 2
159 f 5
160 f 3
答案 0 :(得分:2)
您可以使用coalesce使其按顺序将NULL替换为true。这不会影响select中返回的数据。
select * from table
order by coalesce(accepted,true) desc, priority desc