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函数属于字符串函数,更多查找字符串、转换字符串格式的相关函数请参见字符串函数。
该文章对您有帮助吗?