在查询中返回 Null,而不是 NaN
Posted
技术标签:
【中文标题】在查询中返回 Null,而不是 NaN【英文标题】:Return Null in a query, instead of NaN 【发布时间】:2015-04-25 21:43:03 【问题描述】:在 PostgreSQL 中,我希望查询返回 Null 或空值,而不是 NaN(此 NaN 是由 python 的 pandas 插入以填充空值)。
示例: 选择姓名、年龄 来自“人”
我想得到:
约翰 24
艾米丽
劳拉 50
代替:
约翰 24
艾米丽娜N
劳拉 50
【问题讨论】:
【参考方案1】:我认为你需要使用:
SELECT name, coalesce(age, '') as age From "People"
Coalesce 将空值(第一个参数)替换为第二个参数(此处为空字符串)。
如果你需要测试比 NULL 更复杂的情况,你也可以使用 CASE/WHEN :
SELECT name, CASE WHEN age IS NULL THEN '' ELSE age END AS age from "People"
但 COALESCE 对于简单的 null 处理具有更好的可读性。
【讨论】:
很抱歉,但我认为这并不能回答我的问题。我想用 Null 替换 NaN。顺便说一句,我认为调整你的第二个表达方式是可行的。但西莫的答案更简单。【参考方案2】:尝试使用REPLACE
:
Select name, REPLACE(age, 'NaN')
From People
如果年龄字段包含值'NaN',它将用空字符串替换它。
【讨论】:
【参考方案3】:如果您想要空值而不是“NaN”,您可以简单地使用:
SELECT name, NULLIF(age, 'NaN') From "People"
【讨论】:
以上是关于在查询中返回 Null,而不是 NaN的主要内容,如果未能解决你的问题,请参考以下文章