gpt4 book ai didi

sql-server - 在两个表的同一列上查找缺失值

转载 作者:行者123 更新时间:2023-12-03 15:18:14 27 4
gpt4 key购买 nike

假设您在 SQL Server 数据库中有两个表,这两个表具有相同的架构。我想比较两个表上的单个列,并找到 table1 中缺少但 table2 中的值。在每个查询中得到一个不同的列表后,我一直在 Excel 中使用宏手动执行此操作,但是如果我有一个查询,它的工作量会减少。如何通过 T-SQL 查找丢失的记录?我想对以下数据类型执行此操作:datetime, nvarchar & bigint .

SELECT DISTINCT [dbo].[table1].[column1]
FROM [dbo].[table1]
ORDER BY [dbo].[table1].[column1] DESC

SELECT DISTINCT [dbo].[table2].[column1]
FROM [dbo].[table2]
ORDER BY [dbo].[table2].[column1] DESC

最佳答案

有几种方法可以做到这一点......
LEFT JOIN :

SELECT DISTINCT t2.column1
FROM dbo.table2 t2
LEFT JOIN dbo.table1 t1
ON t2.Column1 = t1.Column1
WHERE t1.Column1 IS NULL
NOT EXISTS :
SELECT DISTINCT t2.column1
FROM dbo.table2 t2
WHERE NOT EXISTS (
SELECT 1
FROM dbo.table1 t1
WHERE t1.column1 = t2.column1
)
NOT IN :
SELECT DISTINCT t2.column1
FROM dbo.table2 t2
WHERE t2.column1 NOT IN (
SELECT t1.column1
FROM dbo.table1 t1
)

这些方法的行为和效率略有不同……主要是基于 NULL 的存在。列中的值,因此请尝试每种方法以找到最有效的方法来提供您期望的结果。

关于sql-server - 在两个表的同一列上查找缺失值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15574230/

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