適用於:
Databricks SQL
Databricks Runtime
分割 str 圍繞符合 regex 的出現次數,並傳回最長為 limit 的陣列。
語法
split(str, regex [, limit] )
引數
-
strSTRING:要分割的表達式。 -
regexp:一個STRING將 分割的str正則表達式。 請參見 「正則表達式 」以了解所支援的語法。 -
limit:選擇性的INTEGER表達式預設為 0(沒有限制)。
退貨
一個ARRAY<STRING>。
如果 limit> 為 0:產生的陣列長度不會超過 limit,而產生的陣列中最後一個項目將包含超出最後一個相符 regex 的所有輸入。
如果 limit<= 0: regex 會盡可能套用多次,且產生的陣列可以是任何大小。
範例
分割為一組分隔符
字元類別[ABC]作為分隔符,與任一ABC、、或相匹配。 後方的空元素來自字串末端的分隔符。
> SELECT split('oneAtwoBthreeC', '[ABC]');
[one,two,three,]
分割逗號分隔的字串
> SELECT split('apple,banana,cherry', ',');
[apple,banana,cherry]
以一個或多個空白字元分割
使用 \s+ 使一連串空格或制表符作為單一分隔符。
> SELECT split('the quick brown', r'\s+');
[the,quick,brown]
限制元素數量
當 limit 大於 0 時,最後一個元素包含字串的其餘部分。
> SELECT split('oneAtwoBthreeC', '[ABC]', 2);
[one,twoBthreeC]
> SELECT split('oneAtwoBthreeC', '[ABC]', -1);
[one,two,three,]
排序會影響配對
小寫模式 [abc] 僅在大小寫不區分的排序下與大寫分隔符匹配。
> SELECT split('oneAtwoBthreeC' COLLATE UTF8_BINARY, '[abc]');
[oneAtwoBthreeC]
> SELECT split('oneAtwoBthreeC' COLLATE UTF8_LCASE, '[abc]');
[one,two,three,]