Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 存在字段的Postgres订单行_Sql_Postgresql_Sql Order By - Fatal编程技术网

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