2017-06-27 1 views
0

スキーマmyバージョンX_yyyyMMddのバージョンでは、フィールドが1つしかありませんa。次のバージョンでは、私は1つのフィールド、bを追加することに決めました。列数が異なるテーブルでbigqueryワイルドカードを選択することはできますか?

X_*に対してワイルドカードを選択すると、最初のバージョンの表のすべての列のデフォルト値が列bになります。

私が書きたいことは次のとおりです。

SELECT a, IF_FIELD_EXISTS(b, default_value) FROM X_* 

答えて

2

はい。以下はうまくいくはずです!場合

#standardSQL 
SELECT a, IFNULL(b, default_value) as b 
FROM `project.dataset.X_*` 

bがARRAY(反復フィールド)である場合 -

#standardSQL 
SELECT 
    a, 
    CASE 
     WHEN ARRAY_LENGTH(b)=0 THEN [default_value] 
     ELSE b 
    END AS b 
FROM `project.dataset.X_*` 
+0

下に使用し、 'B'が反復フィールドですか? :) –

+0

恐ろしい!ありがとう! –

関連する問題