gpt4 book ai didi

sql - 如何编写一个 WHERE 以等于两列同时包含 NULL 值和空值

转载 作者:搜寻专家 更新时间:2023-10-30 20:08:23 24 4
gpt4 key购买 nike

Table structure and values

鉴于我的表结构,现在我需要编写一个查询来比较“STRVAL1 和 STRVAL2”,然后比较“BVAL1 和 BVAL2”,如果两者不同,则应返回该行。

预期结果...

enter image description here

请使用下面的脚本获取数据

DECLARE @TAB TABLE (ID INT, STRVAL1 VARCHAR(8), STRVAL2 VARCHAR(8), BVAL1 BIT, BVAL2 BIT)

INSERT INTO @TAB VALUES
(1, NULL, NULL, NULL, NULL)
, (2, '', NULL, NULL, NULL)
, (3, '', '', NULL, NULL)
, (4, 'VAL', 'VAL', NULL, NULL)
, (5, 'VAL1', 'VAL2', NULL, NULL)
, (6, NULL, NULL, 0, NULL)
, (7, NULL, NULL, 0, 0)
, (8, NULL, NULL, 1, 1)
, (9, NULL, NULL, 1, 0)

SELECT ID, STRVAL1, STRVAL2, BVAL1, BVAL2
FROM @TAB

最佳答案

您可以只使用比较,尽管 NULL 会使这有点麻烦:

select t.*
from @tab t
where ((strval1 <> strval2) or
(strval1 is null and strval2 is not null) or
(strval1 is not null and strval2 is null)
) or
((bval1 <> bval2) or
(bval1 is null and bval2 is not null) or
(bval1 is not null and bval2 is null)
);

关于sql - 如何编写一个 WHERE 以等于两列同时包含 NULL 值和空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40547658/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com