適用於: SQL Server 2025 (17.x)
Azure SQL Database Azure
SQL Managed Instance
SQL database in Microsoft Fabric
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 regex 會傳回區分大小寫的比對。
如果值包含支援 旗標值所列的字元,查詢會傳回錯誤,如下列範例所示:
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_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
平台支援
需要資料庫相容性層級 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 Database、SQL 資料庫(Fabric)中使用,並自 SQL Server 2025 起使用。
- T-SQL 正則表達式函式在 SQL Server 2022 或更早版本中無法使用。
- 在Fabric Data Warehouse中,正則表達式的表值函式
REGEXP_SPLIT_TO_TABLE和REGEXP_MATCHES不被支援。 T-SQL 正則表達式標量函式可在 Fabric Data Warehouse 作為預覽功能提供。