gpt4 book ai didi

sql-server - 使用 EXCEPT 或 INTERSECT 仅显示不匹配的行

转载 作者:行者123 更新时间:2023-12-03 16:53:44 25 4
gpt4 key购买 nike

假设我有 2 个结果集(2 个查询)。

FIELDNAME   VALUE
field1 20.00
field2 13.00
field3 4.00

FIELDNAME VALUE
field1 20.00
field2 14.00
field3 6.00

我知道 query1 EXCEPT query2应该给
FIELDNAME   VALUE
field2 13.00
field3 4.00

但我真正想要的是从查询的两侧显示任何存在差异的情况:
FIELDNAME   VALUE
field2 13.00
field3 4.00
field2 14.00
field3 6.00

那可能吗?我想我可以在临时表中执行 SELECT UNION 。然后删除具有不同值的 NOT EXISTS 字段名的任何行。有没有更简单的?

似乎我可以以某种方式组合 INTERSECT、UNION 和 EXCEPT 并最终得到这个,但没有太多的概念化。

最佳答案

我认为您应该能够通过使用 EXCEPT 获得所需的东西。两次并使用 UNION ALL关于结果:

-- records from the table1 that are not in table2
(SELECT * FROM table1
EXCEPT
SELECT * FROM table2)

UNION ALL

-- records from the table2 that are not in table1
(SELECT * FROM table2
EXCEPT
SELECT * FROM table1)

其他方法是使用 UNION 获得所有表的组合。 ,然后使用 EXCEPT消除所有交叉记录:
-- Union of both tables
(SELECT * FROM table1
UNION ALL
SELECT * FROM table2)

EXCEPT -- Exclude the records ...

-- ... that are in both tables
(SELECT * FROM table1
INTERSECT
SELECT * FROM table2)

关于sql-server - 使用 EXCEPT 或 INTERSECT 仅显示不匹配的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39157982/

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