从今天开始,我在googlebigquery中遇到了一个奇怪的问题。下面的查询没有返回任何记录。我昨天没有看到这个问题
WITH Q1 AS (SELECT 'XC1' AS XC , NULL AS NU
UNION ALL
SELECT 'XC2' AS XC , 'TAB' AS NU )
SELECT * FROM Q1
WHERE NU != 'TAB'
理想情况下,它应该显示xc=xc1的记录,但不返回任何记录。
你们都面临同样的问题吗?如果我们在其他领域面临更大的问题,请尽快通知我们。
你能告诉我这是怎么回事吗?
3条答案
按热度按时间neekobn81#
另一个解决bigquery标准sql这种情况的方法是
webghufk2#
您正在寻找空安全比较。在标准sql中,通常使用操作符
IS [NOT] DISTINCT FROM
:不幸的是,很少有数据库支持这种语法,而bq不是其中之一。所以我们需要使用一个条件表达式:
byqmnocz3#
bigquery没有
NULL
-安全操作员。不过,它也有类似的方法:我承认
or
解决办法可能更清楚。