我有一个问题让我很困惑。我希望你们中的一个人指出我忽略的一些非常愚蠢的错误,但我真的没有看到它。什么导致这些看起来不一致的查询结果?
我有我们的生产工艺已被喂养像一年一个表,我们刚刚从我们的客户对我们试图匹配的数据一些疯狂的表。在以下查询中,tableA
是我的表格,tableB
是我们刚刚导入的表格。
的基本问题是,
select *
from tableA
where convert(nvarchar(30),accountNum) not in (
select CisAC
from tableB
)
没有返回任何记录时,我认为它应该是。我认为它应该在tableA中找到accountAum与tableB中的CisAC字段相匹配的任何记录。对? CisAC是一个nvarchar(30),我们的accountNum字段是bigint。
select * from tableA where convert(nvarchar(30),accountNum) = '336906210032'
返回一个记录,但
select * from tableB where CisAC = '336906210032'
并不:
为什么我觉得一个空返集是错误的指出。
那么,什么给了? (谢谢你的时间!)
如何在表B微调CISAC除去开头和结尾的空白? –
好主意,但没有空白。我还检查了len(CisAC)与1/2 DataLength(CisAC)不同的字段。 – clweeks