split函式

適用於:標示為「是」 Databricks SQL 標示為「是」 Databricks Runtime

分割 str 圍繞符合 regex 的出現次數,並傳回最長為 limit 的陣列。

語法

split(str, regex [, limit] )

引數

  • str STRING:要分割的表達式。
  • 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,]