Sql 存在字段的Postgres订单行
我有表Sql 存在字段的Postgres订单行,sql,postgresql,sql-order-by,Sql,Postgresql,Sql Order By,我有表用户,在这个表中我有列avatar,它保存到用户avatar的路径。我如何能排序我的查询,从有头像的用户开始,然后是他没有的用户。 例如: 表: id|avatar| ___|______| 1 | p1 | 2 | | 3 | | 4 | p4 | 结果: id|avatar| ___|______| 1 | p1 | 4 | p4 | 2 | | 3 | | 假设2和3的空格为空,则ORDER BY已经执行
用户
,在这个表中我有列avatar,它保存到用户avatar的路径。我如何能排序我的查询,从有头像的用户开始,然后是他没有的用户。
例如:
表:
id|avatar|
___|______|
1 | p1 |
2 | |
3 | |
4 | p4 |
结果:
id|avatar|
___|______|
1 | p1 |
4 | p4 |
2 | |
3 | |
假设
2
和3
的空格为空,则ORDER BY已经执行了您想要的操作;按升序排序时,默认情况下最后放置空值:
如果指定了NULLS LAST
,则空值排序在所有非空值之后;如果指定了NULLS FIRST
,则空值排序在所有非空值之前。如果两者都未指定,则当指定或暗示ASC
时,默认行为为NULLS LAST
,当指定DESC
时,默认行为为NULLS FIRST
(因此,默认行为是将null视为大于非null)
简单的说:
order by avatar
可能会成功。如果您想明确说明这一点,那么:
order by avatar nulls last
或
谢谢这是最好的解决方案!
order by avatar asc nulls last