我有一张桌子(数字)。有两列(InitialNumber和FinalNumber)
我需要一个查询,例如,如果初始数字(10)为最终值(20),那么初始数字(20)应该具有最终值(10),想知道表中的所有不同行。关于数据,我想要一个不相同的数字列表
答案 0 :(得分:0)
这是使用exists
的通用方法:
select *
from numbers n
where exists (
select 1
from numbers n2
where (n.init = n2.final and (n.final != n2.init or n.final is null))
or (n2.init = n.final and (n2.final != n.init or n2.final is null))
)
这里的问题是null
值,因为它们不能正确地用=
进行评估-因此进行or
检查的原因。根据您的数据库,这可能会被压缩。