我在PostgreSQL中有以下示例语句:
SELECT ((? IS NULL) OR (1 IN ?))
在哪里?可以是null
,也可以是(1, 2, 3)
。它显然适用于非null,但会导致null值的语法错误。
到目前为止,我一直在尝试使用COALESCE但没有任何运气或Google帮助。
如何正确编写上述声明以处理? = NULL
?
答案 0 :(得分:1)
您可以使用Postgres array
代替列表,例如:
SELECT
coalesce(1 = any(null), true) a,
coalesce(1 = any(array[1,2,3]), true) b,
coalesce(1 = any('{1,2,3}'), true) c;
a | b | c
---+---+---
t | t | t
(1 row)