sql - 具有 NaN 值的 Postgres 排序列

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

有什么想法吗?

最佳答案

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

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

关于sql - 具有 NaN 值的 Postgres 排序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48725372/

相关文章:

postgresql - 无效交易终止

postgresql - 如何在 BETWEEN 子句中插入 AVG?

javascript - 根据对象数组对字符串数组进行排序

sql - Rails ActiveRecord - 如何锁定表以供读取?

python - psycopg2 部分标识符

mysql - 使用左连接对多个表进行 SQL 查询的优化

node.js - 如何在 Postgres URL 中指定模式名称以连接到 Heroku 上的 PostgreSQL 数据库

javascript - 对 Javascript 数组进行排序

perl - 在 Perl 中对巨大的哈希进行排序

sql - Postgresql:滞后直到找到具有特定值的行,并返回该值