我们有两个表:TableA和TableB。 TableA具有空值。我想比较a.columnA和b.columnA
选择计数(*) 来自tableA a 加入tableB b 在a.ID = b.ID上 和a.columnA!= B.columnA
期望结果应为2,但实际结果为零。此查询不会比较空值。如何比较具有空值的列?
答案 0 :(得分:2)
使用<=>
( null-safe equality operator )否定比较,如果其中一个操作数为FALSE
但null
,则返回TRUE
当两者都是null
且两个操作数具有相等的非空值时。
select sum(cast(not a.columnA <=> B.columnA) as int)
From tableA a
join tableB b on a.ID=b.ID
答案 1 :(得分:1)
select count(*)from tableA a.ID = b.ID上的连接表B b和coalesce(a.columnA,'1')!= B.columnA
当我使用合并
时,它可以正常工作