sql - Postgresql 按第一列排序,但第二列最后有空值或零

标签 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

最佳答案

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

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

关于sql - Postgresql 按第一列排序,但第二列最后有空值或零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49314728/

相关文章:

sql - 是否有一个程序可以显示现有数据库中的 SQL 模式图?

postgresql - 将字符串转换为列名

postgresql - TypeORM:在 PostgreSQL 中自动生成 UUID

sql - ORDER BY 输出列小写

postgresql - 如何将 Pgadmin3 连接到 Virtualbox 机器上的数据库?

sql - 如何将表从公共(public)模式移动到 Postgres 中的其他模式

mysql - 将 SQL 查询的结果限制为某一列的一个结果

mysql - MySQL查询中的"unknown column...ERROR no database selected"

php - 担心表格字段太多

postgresql - 从 PostgreSQL 中获取浮点值