web-dev-qa-db-ja.com

BigQuery - operatorのマッチング署名なし=引数型:INT64、文字列

BQからの奇妙なエラー(初めてこのエラーが発生しているかもしれません)。

No matching signature for operator = for argument types: INT64, STRING. 
Supported signatures: ANY = ANY at [27:1]
 _

クエリ:

SELECT col1
    ,col2
    ,col3
FROM tbl1
JOIN t2 ON t1.id = t2.id
JOIN t3 on t2.id = t3.id
JOIN t4 on t4.id = t1.id
 _

エラーラインJOIN t2.id = t3.idt2.idこのエラーが表示されています。

その整数列です。

4
Bhuvanesh

あなたの比較の1つはミキシングタイプです。エラーメッセージが表示されると、これは悪い考えです。どのペア(またはペア)を見つけて、次のいずれかを実行する必要があります。

cast(t2.id as string) = t3.id
t2.id = safe.cast(t3.id as int64)
 _
6
Gordon Linoff