0

今日から Google Big Query で奇妙な問題に直面しています。以下のクエリはレコードを返しません。昨日はこの問題を見ていませんでした

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 のレコードを表示する必要がありますが、レコードは返されません。

あなたは皆同じ問題に直面していますか?他の地域でより大きな問題に直面しているため、すぐにお知らせください。

ここで何が起こっているのか教えていただけますか?

4

3 に答える 3

0

null セーフな比較を探しています。標準 SQL では、通常 operator を使用しますIS [NOT] DISTINCT FROM

SELECT * FROM Q1 WHERE NU IS DISTINCT FROM 'TAB'

残念ながら、この構文をサポートするデータベースはほとんどなく、BQ はその 1 つではありません。したがって、条件式に頼る必要があります。

SELECT * FROM Q1 WHERE NU IS NULL OR NU != 'TAB'
于 2020-05-18T22:28:37.033 に答える
0

NULLBigQuery には-safe 演算子がありません。ただし、同様の方法があります。

where not ((nu = 'TAB') is false)

or解決策はおそらくより明確 であることを認めます。

于 2020-05-19T00:33:25.543 に答える