PostgreSQL COALESCE IN IN

时间:2016-02-09 12:45:38

标签: sql postgresql coalesce

我在PostgreSQL中有以下示例语句:

SELECT ((? IS NULL) OR (1 IN ?))

在哪里?可以是null,也可以是(1, 2, 3)。它显然适用于非null,但会导致null值的语法错误。

到目前为止,我一直在尝试使用COALESCE但没有任何运气或Google帮助。

如何正确编写上述声明以处理? = NULL

1 个答案:

答案 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)