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,]