全部產品
Search
文件中心

MaxCompute:SPLIT

更新時間:Nov 14, 2025

SPLIT函數用於以指定分隔字元delimiter對輸入字串source進行分割,支援通過選擇性參數trimTailEmpty設定是否保留末尾Null 字元串,返回字串數組ARRAY<STRING>

命令格式

ARRAY<STRING> SPLIT(STRING <source>, STRING <delimiter>[, BOOLEAN <trimTailEmpty>])

-- 標準樣本。
-- 返回["a","b","c"]。
SELECT SPLIT('a,b,c', ',');

參數說明

  • source:必填。表示待分割的原始字串。STRING類型。

  • delimiter:必填。分隔字元。支援Regex文法。STRING類型。

  • trimTailEmpty: 可選。預設值為true,設定為false時保留末尾Null 字元串。BOOLEAN類型。

傳回值說明

返回ARRAY數組。數組中的元素為STRING類型,即 ARRAY<STRING> 類型。

使用樣本

  • 樣本1:使用逗號分隔字串。

    -- 返回["a","b","c"]。
    SELECT SPLIT('a,b,c', ',');
  • 樣本2:處理不存在分隔字元的情況。

    -- 返回["a,b,c"]。
    SELECT SPLIT('a,b,c', ':');
  • 樣本3:處理連續分隔字元(會產生Null 字元串元素)。

    -- 返回["a","","b"]。
    SELECT SPLIT('a,,b', ',');
  • 樣本4:使用多字元分隔字元。

    -- 返回["a","b","c"]。
    SELECT SPLIT('a::b::c', '::');
  • 樣本5:保留末尾Null 字元串。

    -- 預設不返回末尾Null 字元串。
    -- 返回["a","b","c"]。
    SELECT SPLIT('a,b,c,,', ',');
    
    -- 返回末尾Null 字元串。
    -- 返回["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函數屬於字串函數,更多尋找字串、轉換字串格式的相關函數請參見字串函數