gpt4 book ai didi

sql - 合并和缩短两个 where 子句条件

转载 作者:行者123 更新时间:2023-12-02 08:41:25 26 4
gpt4 key购买 nike

架构:

CREATE TABLE #exclGeoKeys (xKEY INT);
INSERT INTO #exclGeoKeys
values
(1),
(2);

CREATE TABLE #y (NAME CHAR(1),xKEY INT);
INSERT INTO #y
values
('A',1),
('C',2),
('D',NULL),
('E',3),
('F',4);

我可以缩短以下内容以产生相同的结果并且不需要 OR xKEY IS NULL 部分吗?

SELECT *
FROM #y
WHERE xKEY NOT IN
(
SELECT *
FROM #exclGeoKeys
)
OR
xKEY IS NULL;

最佳答案

将选项与 NOT EXISTS 结合使用运算符(operator)

SELECT *
FROM #y t
WHERE NOT EXISTS (
SELECT 1
FROM #exclGeoKeys t2
WHERE t.xKEY = t2.xKEY
)

演示 SQLFiddle

带有 EXISTS 和 EXCEPT 运算符的选项

SELECT *
FROM #y t
WHERE EXISTS (
SELECT t.xKEY
EXCEPT
SELECT t2.xKEY
FROM #exclGeoKeys t2
)

带有 NOT EXISTS 和 INTERSECT 运算符的选项

SELECT *
FROM #y t
WHERE NOT EXISTS (
SELECT t.xKEY
INTERSECT
SELECT t2.xKEY
FROM #exclGeoKeys t2
)

关于sql - 合并和缩短两个 where 子句条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16218455/

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