我有一个bigquery select语句,在某些情况下,where子句显示null = null
在这种情况下:
select * from `db.ds.table1` t1
join `db.ds.table2` t2
on t1.first_name = t2.first_name
and t1.last_name = t2.last_name
如您所见,这似乎是在寻找人,但是,在某些情况下,我的公司在桌子上。在这些情况下,将使用first_name
,而last_name
为空。
这意味着我有一个null = null
场景,并且加入失败。
如何告诉bigquery允许null = null
,而不必到处放置合并语句?
谢谢
答案 0 :(得分:3)
使姓氏为可选,并允许姓氏NULL
均有效:
SELECT *
FROM `db.ds.table1` t1
INNER JOIN `db.ds.table2` t2
ON t1.first_name = t2.first_name AND
(t1.last_name = t2.last_name OR (t1.last_name IS NULL AND t2.last_name IS NULL));
我们也可以尝试使用COALESCE
编写查询,但是目前尚不清楚应该使用哪个值代替NULL
姓氏。
答案 1 :(得分:2)
active.evaluate(self)
很明显,ifnull等同于合并,因此不确定是否可以接受,因为您提到由于某种原因不想使用合并