SPLIT 関数は、指定されたセパレーター delimiter を使用して入力文字列 source を分割し、ARRAY<STRING> 型の値を返します。オプションの trimTailEmpty パラメーターは、末尾の空の文字列を保持するかどうかを制御します。
構文
ARRAY<STRING> SPLIT(STRING <source>, STRING <delimiter>[, BOOLEAN <trimTailEmpty>])
-- 標準的な例。
-- ["a","b","c"] を返します。
SELECT SPLIT('a,b,c', ',');パラメーター
source: 必須。STRING 型の値。このパラメーターは、分割する文字列を指定します。
delimiter: 必須。正規表現 構文をサポートする STRING 型のデリミタ。
trimTailEmpty: オプション。BOOLEAN 型の値。このパラメーターは、末尾の空の文字列を保持するかどうかを指定します。デフォルト値は
trueです。このパラメーターをfalseに設定すると、末尾の空の文字列が保持されます。
戻り値
ARRAY<STRING> 型の値を返します。
例
例 1: コンマを使用して文字列を分割します。
-- ["a","b","c"] を返します。 SELECT SPLIT('a,b,c', ',');例 2: 文字列内に見つからないセパレーターを処理します。
-- ["a,b,c"] を返します。 SELECT SPLIT('a,b,c', ':');例 3: 連続するセパレーターを処理します。この操作により、空の文字列要素が作成されます。
-- ["a","","b"] を返します。 SELECT SPLIT('a,,b', ',');例 4: 複数文字のセパレーターを使用します。
-- ["a","b","c"] を返します。 SELECT SPLIT('a::b::c', '::');例 5: 末尾の空の文字列を保持します。
-- デフォルトでは、末尾の空の文字列は返されません。 -- ["a","b","c"] を返します。 SELECT SPLIT('a,b,c,,', ','); -- 末尾の空の文字列を保持します。 -- ["a","b","c","",""] を返します。 SELECT SPLIT('a,b,c,,', ',', false);例 6: エスケープ文字または特殊文字をセパレーターとして使用します。
-- 改行で分割します。 -- ["hello","world"] を返します。 SELECT SPLIT('hello\nworld', '\n'); -- タブ文字で分割します。 -- ["a","b","c"] を返します。 SELECT SPLIT('a\tb\tc', '\t'); -- キャリッジリターンで分割します。 -- ["line1","line2"] を返します。 SELECT SPLIT('line1\rline2', '\r'); -- バックスラッシュをエスケープします。 -- ["a","b","c"] を返します。 SELECT SPLIT('a\\b\\c', '\\\\');例 7: NULL 入力を処理します。
-- いずれかのパラメーターが NULL の場合、関数は NULL を返します。 -- NULL を返します。 SELECT SPLIT(NULL, ','); -- NULL を返します。 SELECT SPLIT('a,b,c', NULL); -- NULL を返します。 SELECT SPLIT('a,b,c', ',', NULL);
関連関数
SPLIT は文字列関数です。他の文字列関数については、「文字列関数」をご参照ください。