SPLIT 関数は、指定された区切り文字 delimiter を使用して入力文字列 source を分割します。オプションのパラメーター trimTailEmpty は、末尾の空文字列を保持するかどうかを指定します。この関数は、ARRAY<STRING> 型の値を返します。
構文
ARRAY<STRING> SPLIT(STRING <source>, STRING <delimiter>[, BOOLEAN <trimTailEmpty>])
-- 標準的な例。
-- ["a","b","c"] が返されます。
SELECT SPLIT('a,b,c', ',');パラメーター
source:必須。分割する文字列です。データ型は STRING です。
delimiter:必須。文字列の分割に使用される区切り文字です。このパラメーターは 正規表現 をサポートします。データ型は STRING です。
trimTailEmpty:オプション。末尾の空文字列を削除するかどうかを指定します。デフォルト値は
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 関数は文字列関数です。文字列の検索や文字列形式の変換に使用できるその他の関数については、「文字列関数」をご参照ください。