Sql 比较同一表格中的两列,反之亦然

Sql 比较同一表格中的两列,反之亦然,sql,Sql,我有一张桌子(数字)。有两列(InitialNumber和FinalNumber) 数据就是这样的 我需要一个查询,比如如果初始数(10)作为最终值(20),那么初始数(20)应该有最终值(10),我想知道表中所有不同的行。在“关于数据”中,我想要一个不相同的数字列表,这里有一个使用exists的通用方法: select * from numbers n where exists ( select 1 from numbers n2 where (n.init = n2.fi

我有一张桌子(数字)。有两列(InitialNumber和FinalNumber)

数据就是这样的


我需要一个查询,比如如果初始数(10)作为最终值(20),那么初始数(20)应该有最终值(10),我想知道表中所有不同的行。在“关于数据”中,我想要一个不相同的数字列表,这里有一个使用
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
值,因为它们不能用
=
正确计算——因此需要进行
检查。根据您的数据库,这可能会被压缩

请指定您正在使用的数据库是SQL Server还是MySql?