postgres中的sqlite IFNULL()

时间:2017-05-12 09:29:56

标签: postgresql sqlite ifnull

Postgres中SQLite的IFNULL()等同于什么?

我必须遵循查询(Ruby中的sqlite):

SELECT ifnull(max(code_id) + 1, 1) 
FROM configentries 
WHERE configtable_id = ...

如果我想在PostgreSQL中获得相同的结果,应该怎么样?

2 个答案:

答案 0 :(得分:0)

尝试一下, 选择NULLIF(Max(code_id),0)+1 来自配置项 哪里configtable_id = ...

答案 1 :(得分:0)

所有答案都很好,但仅适用于仅返回一行的情况。

如果你想查询多行并在找到 0 行时接收一个默认值,你可以使用这个:

SELECT example_field from "example_table" WHERE attribute='x'
UNION 
SELECT 'my_default_value' FROM  "example_table"  WHERE 
(SELECT example_field from "example_table" WHERE attribute='x'  LIMIT 1) is NULL