我有一个让我很困惑的问题。我有一半希望你们中的一个人指出我忽略的一些非常愚蠢的错误,但我真的只是没有看到它。
我有一张表格,我们的生产流程已经提供了大约一年的时间,我们刚刚从客户那里得到了一些疯狂的表格,我们正试图将这些表格与这些表格进行匹配。在以下查询中,tableA
是我的表,tableB
是我们刚刚导入的表。
基本问题是
select *
from tableA
where convert(nvarchar(30),accountNum) not in (
select CisAC
from tableB
)
在我认为应该返回的时候没有返回任何记录。我认为它应该在 tableA 中找到 accountNum 与 tableB 中的 CisAC 字段匹配的任何记录。对?CisAC 是一个 nvarchar(30) 并且我们的 accountNum 字段是一个 bigint。
指出为什么我认为空返回集是错误的:
select * from tableA where convert(nvarchar(30),accountNum) = '336906210032'
返回一条记录,但
select * from tableB where CisAC = '336906210032'
才不是。
那么,什么给了?(感谢您的宝贵时间!)