bigqueryで文字列結合の方法(concatとarray_to_string)
bigqueryで文字列を結合したい、という時に、2つの便利な方法があります。
ただ、両方とも一長一短なので、使い分けが必要。
concat
単純連結。但し値にnullがあると結果が空になるので、ifnullで先に整形しておく必要がある。
array_to_string
一旦文字列を配列に入れ、要素がある部分だけ結合。セパレータも選べる。
上記のを使い分けるとこうなる。
https://www.codeemall.info/posts/bq-string-func/
bigqueryで文字列を結合したい、という時に、2つの便利な方法があります。
ただ、両方とも一長一短なので、使い分けが必要。
concat
単純連結。但し値にnullがあると結果が空になるので、ifnullで先に整形しておく必要がある。
array_to_string
一旦文字列を配列に入れ、要素がある部分だけ結合。セパレータも選べる。
上記のを使い分けるとこうなる。
select a, b, c from table
select concat(a,b,c) →そのまま結合
select concat(a,'_',b,'_',c) →a_b_c とセパレートする
問題はconcatで1つでもnullがあるとnullになるため、ifnull(a,'') as aと前段階でする必要がある。
select array_to_string([a,b,c], '_')
→中身が全部入っていたら上記と同じ。但し例えばbが空の場合、a_c となる。
https://www.codeemall.info/posts/bq-string-func/
コメント