是否有PostgreSQL等价于SQLite的IS运算符?

问题描述:

In SQLiteIS是一个二进制运算符方法类似于=除了当操作数的一个或两个是NULL。在两个操作数为NULL的情况下,IS运算符评估为TRUE。在的情况下一个操作数是NULL,而不是其他的IS操作数的计算结果为FALSE是否有PostgreSQL等价于SQLite的IS运算符?

我一直在寻找PostgreSQL中类似的操作,但我找不到一个。 PostgreSQL中是否有相当于SQLite的IS运算符?如果不是,什么是最好的/最复杂的解决方法?

为了澄清,SELECT column1 IS column2 ...被允许在SQLite的,但PostgreSQL的提出了一个语法错误。

尝试IS (NOT) DISTINCT FROM操作。

+0

完美!谢谢! –

显然,它可能在PostgreSQL中(见dan04的)。下面的查询可以在SQL Server和其他语法不可用的DBMS中使用。

您可以通过做模拟:

WHERE (column1 is NULL and column2 is NULL) 
     OR column1 = column2 

要添加到@德里克的回答是:

在MySQL中,你可以使用<=>运营商相同的效果:

SELECT * FROM table1 WHERE column1 <=> column2