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

@R_403_323@

根据列的数据类型和可能的值:
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标准,这应该给你你想要的,但谁遵循标准.

相关文章

(一)日志传送架构 (1.1)相关服务器 主服务器 :用于生产的服务器,上面运行这生产SQL Server数据库...
(一)事故背景 最近在SQL Server 2012生产数据库上配置完事物复制(发布订阅)后,生产数据库业务出现了...
(一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既...
(一)背景个人在使用sql server时,用到了sql server的发布订阅来做主从同步,类似MySQL的异步复制。在...
UNION和OR谓词 找出 product 和 product2 中售价高于 500 的商品的基本信息. select * from product wh...
datawhale组队学习task03