我们正在尝试清除某些列重复的记录。如果表中没有匹配的'Y'记录,并且具有相同的姓/名,我构建了此查询以显示其标记为'N'的任何行。
select * from Table where LName+FName not in
(select LName+FName from Table where FLAG = 'y')
然而,这会带来0结果。内部查询确实返回预期结果。如果我运行内部查询,并手动粘贴结果值,如下所示,它将运行结果。
select * from Table where LName+Fname not in ('DoeJohn','AbelAdam')
这到底发生了什么?
答案 0 :(得分:1)
我建议查看您的数据... NOT IN
在有NULL
值时失败。您可以尝试使用NOT EXISTS
或过滤任何空值:
select * from Table where LName+FName not in
(select LName+FName from Table where FLAG = 'y' AND LName+FName IS NOT NULL)