sql – 具有可以为null的列的测试不等式

前端之家收集整理的这篇文章主要介绍了sql – 具有可以为null的列的测试不等式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以,今天早上我问了一个 question,我没有正确的短语,所以我得到了很多回应,为什么NULL相比任何东西都会给NULL / FALSE.

我的实际问题是,数据库人员测试两列可能为NULL的不等式的时间是多久.我的问题与question完全相反.

要求如下,A和B为两列:
a)如果A和B都为NULL,则它们相等,返回FALSE
b)如果A和B都不为空,则返回A B
c)如果A或B都为NULL,则它们不相等,返回TRUE

解决方法

根据列的数据类型和可能的值:
COALESCE(A,-1) <> COALESCE(B,-1)

诀窍是找到一个值(这里我使用-1),永远不会出现在你的数据中.

另一种方式是:

(A <> B) OR (A IS NOT NULL AND B IS NULL) OR (A IS NULL AND B IS NOT NULL)

这可能是一个问题,具体取决于您的特定RDBMS如何处理NULL.根据ANSI标准,这应该给你你想要的,但谁遵循标准.

猜你在找的MsSQL相关文章