REGEXP_SPLIT_TO_TABLE

适用于:Microsoft Fabric 中的 SQL Server 2025 (17.x) Azure SQL 数据库Azure SQL 托管实例 SQL 数据库

REGEXP_SPLIT_TO_TABLE表值正则表达式函数返回一个字符串分割表,由正则表达式模式分隔。 如果模式不匹配,该函数将返回字符串。

REGEXP_SPLIT_TO_TABLE
(
    string_expression,
    pattern_expression [ , flags ]
)

Arguments

string_expression

字符串的表达式。

可以是字符串的常量、变量或列。

数据类型: char、 nchar、 varchar 或 nvarchar。

Note

这些 REGEXP_* 函数支持LOB类型(varchar(max) 和 nvarchar(max)), string_expression 参数最多可达2 MB。

pattern_expression

要匹配的正则表达式模式。 通常是文本文本。

数据类型: char、 nchar、 varchar 或 nvarchar。 pattern_expression 支持最大字符长度为 8,000 字节。

flags

指定用于搜索匹配项的修饰符的一个或多个字符。 类型为 varchar 或 char,最多包含 30 个字符。

例如,ims。 默认值为 c。 如果提供了空字符串 (' ') ,它将被视为默认值 ('c')。 提供 c 或任何其他字符表达式。 如果标志包含多个相互矛盾的字符,则 SQL Server 使用最后一个字符。

例如,如果指定 ic 正则表达式返回区分大小写的匹配。

如果值包含除 受支持标志值中列出的字符以外的字符,则查询将返回如下例所示的错误:

Invalid flag provided. '<invalid character>' are not valid flags. Only {c,i,s,m} flags are valid.
支持的标志值
Flag Description
i 不区分大小写 (默认值 false)
m 多行模式: ^ 和 $ 匹配开始/结束行,以及开始/结束文本(默认值 false)
s 让 . 匹配 \n (默认值 false)
c 区分大小写(默认值 true)

Returns

REGEXP_SPLIT_TO_TABLE 返回以下两列表:

列名 数据类型 Description
value 与 string_expressionvarchar 相同的类型 如果找到分隔符,则它是匹配的子字符串。 否则,它是整个表达式。
ordinal bigint 输入表达式中每个子字符串位置的基于 1 的索引值。

返回表拆分 。the quick brown fox jumps over the lazy dog

SELECT *
FROM REGEXP_SPLIT_TO_TABLE ('the quick brown fox jumps over the lazy dog', '\s+');
Value  Ordinal
the    1
quick  2
brown  3
fox    4
jumps  5
over   6
the    7
lazy   8
dog    9

平台支持

需要数据库兼容性级别 170。 要设置数据库兼容性级别,请审查 ALTER DATABASE (Transact-SQL)兼容性级别。 如果启用了 ALLOW_BUILTIN_TVF_IN_ALL_COMPAT_LEVELS 数据库范围配置,兼容性要求就不适用。

  • 在Azure SQL 托管实例中,T-SQL正则表达式函数仅通过SQL Server 2025或Always-up-to-date更新策略提供。
  • T-SQL 正则表达式函数可在 Azure SQL 数据库、SQL 数据库(Fabric)中使用,并从 SQL Server 2025 开始使用。
  • T-SQL 正则表达式函数在 SQL Server 2022 及更早版本中不可用。
  • 在 Fabric Data Warehouse 中,正则表达式表值函数REGEXP_SPLIT_TO_TABLE和REGEXP_MATCHES不被支持。 T-SQL 正则表达式标量函数作为预览功能在Fabric Data Warehouse中提供。