Sql 不存在的配置单元不比较空值

Sql 不存在的配置单元不比较空值,sql,hive,hql,hiveql,Sql,Hive,Hql,Hiveql,我试图只选择某些列值不同的行。我的问题是,如果我使用=,它不会比较空值的列,如果我用Like替换=,我会得到以下错误,有什么建议吗?两个表都有相等的列 不支持的子查询表达式子查询表达式同时引用父表达式和子查询表达式,并且不是有效的联接条件。州=42000,代码=10249 null在技术上意味着它的未知 =不比较未知-s;因为不可能比较它们……两个未知数的比较结果是未知的: 然而: select assert_true( (null = null) ) 将失败,因为结果未知 如果您仍然希望使用

我试图只选择某些列值不同的行。我的问题是,如果我使用=,它不会比较空值的列,如果我用Like替换=,我会得到以下错误,有什么建议吗?两个表都有相等的列

不支持的子查询表达式子查询表达式同时引用父表达式和子查询表达式,并且不是有效的联接条件。州=42000,代码=10249

null在技术上意味着它的未知

=不比较未知-s;因为不可能比较它们……两个未知数的比较结果是未知的:

然而:

select assert_true( (null = null) )
将失败,因为结果未知

如果您仍然希望使用null-s加入;我建议添加一些coalesce-s来消除这些未知的-s

A B 使用EQUAL=运算符返回与非null相同的结果 操作数,但若两个操作数都为NULL,则返回TRUE;若其中一个操作数为NULL,则返回FALSE 是空的。从0.9.0版开始

1添加包含所需结果的数据示例2哪个列可能为空?A.B本地身份证?都是吗?其中一些?
select assert_true( (null = null) is null  )
select assert_true( (null = null) )
select  t.* 

from                table1 t

        left join   table2 l 

        on          t.loco_id   <=> l.loco_id 
                and t.a         <=> l.a 
                and t.b         <=> l.b

where   l.loco_id is null
;