具有NaN值的Postgres订单列

时间:2018-02-10 20:42:30

标签: sql postgresql sorting

我在postgres和几列中都有一个数据库(类型为int)我有NaN值。当我对ASC进行排序时,结果是正确的,例如:

0
1
2
3
4
NaN

但是当我正在排序DESC时,我得到了:

naN
4
3
2
1
0

我知道Postgres将NaN值视为相等,并且大于所有非NaN值,但有没有办法得到这个结果?

4
3
2
1
0
NaN

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

如果您的列不包含NULL,则可以明确地将NaN转换为NULL并对其进行排序:

select *
from some_table
order by nullif(some_column, 'NaN') desc nulls last