SPLIT

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时保留末尾空字符串。BOOLEAN类型。

返回值说明

返回ARRAY数组。数组中的元素为STRING类型,即 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函数属于字符串函数,更多查找字符串、转换字符串格式的相关函数请参见字符串函数