Dan*_*uła 3 sql sorting postgresql
我在 postgres 中有一个数据库,在几列(int 类型)中我有 NaN 值。当我对 ASC 进行排序时,结果是正确的,例如:
0
1
2
3
4
NaN
Run Code Online (Sandbox Code Playgroud)
但是当我对 DESC 进行排序时,我得到了:
naN
4
3
2
1
0
Run Code Online (Sandbox Code Playgroud)
我知道 Postgres 将 NaN 值视为相等,并且大于所有非 NaN 值,但是有没有办法得到这个结果?
4
3
2
1
0
NaN
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
如果您的列不包含NULLs,您可以明确地将 NaN 转换为 NULL 并对其进行排序:
select *
from some_table
order by nullif(some_column, 'NaN') desc nulls last
Run Code Online (Sandbox Code Playgroud)