すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:SPLIT

最終更新日:Nov 12, 2025

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 は文字列関数です。他の文字列関数については、「文字列関数」をご参照ください。