Postgresql按第一列排序,但第二列中的空值为零

时间:2018-03-16 06:48:10

标签: sql postgresql postgresql-9.1

如何对具有多列的表进行排序,其中排序按第一列按字母顺序排列,但第二列中具有空值或零的所有字母条目最后显示。

排序前 表“用户”

username    monies    zip
jim         25       87888
allan       12       34333
adrian       0       97677
abel       null      87888
will         4       88788

排序后 表“用户”

username    monies    zip
allan       12       34333
jim         25       87888
will         4       88788
abel       null      87888
adrian       0       97677

我尝试了这个,但它不起作用

 SELECT 
     * 
 FROM 
     "user"
 ORDER BY 
     name ASC, 
     monies nulls last

1 个答案:

答案 0 :(得分:2)

首先对0null进行排序,然后按用户名进行字母排序

order by case when monies = 0  or monies is null then 1 else 0 end,  username