gpt4 book ai didi

sql - 是什么导致了这些看似不一致的查询结果?

转载 作者:行者123 更新时间:2023-12-05 00:18:49 26 4
gpt4 key购买 nike

我有一个问题让我很困惑。我半希望你们中的一个人指出一些我忽略的非常愚蠢的错误,但我真的只是没有看到它。

我有一张表格,我们的生产流程已经使用了大约一年的时间,而我们刚刚从客户那里得到了一些疯狂的表格,我们正试图根据这些表格匹配数据。在以下查询中,tableA 是我的表,tableB 是我们刚刚导入的表。

基本问题是

select *
from tableA
where convert(nvarchar(30),accountNum) not in (
select CisAC
from tableB
)

在我认为应该的时候没有返回任何记录。我认为它应该在表 A 中找到任何记录,其中 accountNum 与表 B 中的 CisAC 字段匹配。正确的? CisAC 是一个 nvarchar(30),我们的 accountNum 字段是一个 bigint。

指出为什么我认为空返回集是错误的:

select * from tableA where convert(nvarchar(30),accountNum) = '336906210032'

返回一条记录但是

select * from tableB where CisAC = '336906210032'

没有。

那么,是什么给了? (感谢您的宝贵时间!)

最佳答案

我怀疑是 tableB 中的空值导致 IN 失败

我会努力

select * 
from tableA
left join tableB
on convert(nvarchar(30),tableA.accountNum) = tableB.CisAC
where tableB.CisAc is null

关于sql - 是什么导致了这些看似不一致的查询结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12730582/

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