【发布时间】:2026-02-18 12:20:06
【问题描述】:
原始表中有 1466303 条记录,我已将其中 1108441 条记录插入到单独的表中。我想知道的是剩下什么数据?所以我使用多个存在进行了查询以查找剩余的数据:
SELECT SG_customer,
PHONE,
SG_Name,
SG_Secondary_Address,
SG_Primary_Address,
SG_City,
SG_State,
SG_Zip,
SG_Email
FROM FMJ_DB_VPI_EXPANDED_DATA X
WHERE NOT EXISTS (SELECT 1
FROM FMJScore
WHERE SGID = X.SG_Customer
AND Phone = X.Phone
AND Name = X.SG_Name
AND SecondAddress = X.SG_Secondary_Address
AND Address = X.SG_Primary_Address
AND City = X.SG_City
AND State = X.SG_State
AND Zip = X.SG_Zip
AND Email = X.SG_Email)
运行这个返回144391条记录,应该有357862的差异,我不明白为什么返回这么多记录。
【问题讨论】:
-
我的第一个猜测是有些字段是
NULL,所以没有找到匹配项。 -
是的,有些是空的,有没有办法用空数据做到这一点?
-
从 t1 中选择 * 减去从 t2 中选择 *; (见 MINUS 运算符)
-
如果你使用 MINUS 考虑到 MINUS 消除了重复,所以结果可能仍然包含更少的行
-
您使用的是什么关系型数据库?对 SQL Server 使用
EXCEPT(而不是MINUS)
标签: sql sql-server tsql exists