postgres中的sqlite IFNULL()

Rag*_*rok 16 sqlite postgresql ifnull

IFNULL()Postgres 中SQLite的等价物是什么?

我必须跟随查询(Ruby中的sqlite):

SELECT ifnull(max(code_id) + 1, 1) 
FROM configentries 
WHERE configtable_id = ...
Run Code Online (Sandbox Code Playgroud)

如果我想要与PostgreSQL相同的结果,这应该怎么样?

Vao*_*sun 30

尝试 coalesce:

COALESCE函数返回其非空的第一个参数.仅当所有参数都为null时才返回Null

SELECT coalesce(max(code_id) + 1, 1) 
FROM configentries 
WHERE configtable_id = ...
Run Code Online (Sandbox Code Playgroud)


Cso*_*mai 9

简而言之,COALESCE函数就是您可以在 postgres 中使用的函数。

COALESCE优于以下IFNULL几个原因:

  • COALESCE是标准 SQL 函数(在每个 RDBMS 中实现),而 whileIFNULL即使广泛使用,也不是标准的。
  • COALESCE可以处理两个以上的操作数。它返回第一个非 NULL 值。例如,COALESCE(NULL, 'a', NULL)返回a. IFNULL不能这样做。