加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 08:42:21 所属栏目:MsSql教程 来源:网络整理
导读:所以,今天早上我问了一个 question,我没有正确的短语,所以我得到了很多回应,为什么NULL相比任何东西都会给NULL / FALSE. 我的实际问题是,数据库人员测试两列可能为NULL的不等式的时间是多久.我的问题与question完全相反. 要求如下,A和B为两列: a)如果A和B都
所以,今天早上我问了一个 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标准,这应该给你你想要的,但谁遵循标准.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读