仅在NOT null时比较字段

时间:2015-01-13 12:41:21

标签: google-bigquery

我有这样的查询。

SELECT T1.timestamp, T2.timestamp FROM (SELECT …) AS T1 LEFT OUTER JOIN (SELECT ….) AS T2 ON T1.id = T2.id WHERE T1.timestamp < T2.timestamp

我面临的问题是条件WHERE T1.timestamp < T2.timestamp将过滤掉T1.timestamp&lt; T2.timestamp以及T2.timestamp为null的行。

在我的用例中,我不希望查询过滤出T2.timestamp为null的行。 T1.timestamp < T2.timestamp只有在定义了两个时间戳并且应该返回T2.timestamp为空的行时才进行比较。

有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:2)

复制N.N.回答这里,所以这个问题没有出现0答案:

WHERE T1.timestamp<= ifnull(T2.timestamp,T1.timestamp) 

Pentium10回答:

WHERE T1.timestamp < T2.timestamp OR T2.timestamp IS NULL

(如果N.N.或Pentium10将他们的评论移到答案中,我会删除这个答案)