适用于:SQL Server 2025 (17.x) 在
Microsoft Fabric 中预览
Azure SQL 数据库
Azure SQL 托管实例 SQL 数据库
注释
作为预览版功能,本文中介绍的技术受制于 Microsoft Azure 预览版补充使用条款。
返回由正则表达式模式分隔的字符串拆分表。 如果模式不匹配,该函数将返回字符串。
REGEXP_SPLIT_TO_TABLE
(
string_expression,
pattern_expression [, flags ]
)
需要数据库兼容性级别 170。 若要设置数据库兼容性级别,请查看 ALTER DATABASE (Transact-SQL) 兼容性级别。
论据
string_expression
字符串的表达式。
可以是字符串的常量、变量或列。
数据类型: char、 nchar、 varchar 或 nvarchar。
注释
对于REGEXP_LIKE
REGEXP_COUNT
参数,函数REGEXP_INSTR
和函数支持 LOB 类型(varchar(max)和 nvarchar(max)最多 2 MB。
pattern_expression
要匹配的正则表达式模式。 通常是文本文本。
数据类型: char、 nchar、 varchar 或 nvarchar。 pattern_expression 支持最大字符长度为 8,000 字节。
标志
指定用于搜索匹配项的修饰符的一个或多个字符。 类型为 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.
支持的标志值
旗帜 | DESCRIPTION |
---|---|
i |
不区分大小写 (默认值 false ) |
m |
多行模式: ^ 和 $ 匹配开始/结束行,以及开始/结束文本(默认值 false ) |
s |
让 . 匹配 \n (默认值 false ) |
c |
区分大小写(默认值 true ) |
退货
REGEXP_SPLIT_TO_TABLE
返回以下两列表:
列名称 | 数据类型 | DESCRIPTION |
---|---|---|
value |
与 string_expression varchar 相同的类型 |
如果找到分隔符,则它是匹配的子字符串。 否则,它是整个表达式。 |
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