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函數屬於字串函數,更多尋找字串、轉換字串格式的相關函數請參見字串函數。