在查询中返回Null,而不是NaN

时间:2015-02-24 10:07:19

标签: sql postgresql replace nan

在PostgreSQL中,我想查询返回Null或空值,而不是NaN(这个NaN是由python' s pandas插入来填充空值)。

例: 选择姓名,年龄 来自" People"

我想得到:

John 24

Emily

Laura 50

而不是:

John 24

Emily NaN

Laura 50

3 个答案:

答案 0 :(得分:0)

我认为您需要使用:

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对简单的空值处理具有更好的可读性。

答案 1 :(得分:0)

尝试使用REPLACE

Select name, REPLACE(age, 'NaN')
From People

如果年龄字段包含空字符串,它将用空字符串替换值'NaN'。

答案 2 :(得分:0)

如果你想要空值而不是' NaN'你可以简单地使用:

SELECT name, NULLIF(age, 'NaN') From "People"