BigQueryで文字列の特定文字以前・以降を切り出して結合する方法

汎用性が高そうなのでメモ。

例として、”3001 F”のような記述であるSTRING型のno_idデータを、”3001-F”のようにクレンジングして使用したい場合など。

 
この場合、

①3001とFを一度半角スペース区切りで切り分け

②切り分けたOFFSETの0番目(3001)と1番目(F)の間にハイフンを入れて文字列結合

の順で処理することになる。

 
以上を踏まえたSQLのクエリがこちら。

CONCAT( SPLIT(no_id, ' ')[OFFSET(0)], '-', SPLIT(no_id, ' ')[OFFSET(1)]) as no_id_fixed