Как сравнить два столбца с нулевыми значениями в разных таблицах в Hive - PullRequest
0 голосов
/ 29 мая 2018

enter image description here

У нас есть две таблицы: TableA и TableB.Таблица A имеет нулевые значения.Я хочу сравнить a.columnA с b.columnA

select count (*) Из таблицы A объединить таблицуB b для a.ID = b.ID и a.columnA! = B.columnA

Ожидаемый результат должен быть 2, но фактический результат равен нулю.Этот запрос не сравнивает нулевое значение.Как сравнить столбец с нулевым значением?

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

select count (*) Из таблицы A объединить таблицу B b для a.ID = b.ID и coalesce (a.columnA, '1')! = B.columnA

Работает, когда я использую coalesce

0 голосов
/ 29 мая 2018

Использовать <=> ( нулевой оператор равенства ) отрицательное сравнение, которое возвращает 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
...