共用方式為


REGEXP_SPLIT_TO_TABLE

適用於: SQL Server 2025 (17.x) Azure SQL Database AzureSQL Managed InstanceSQL database in Microsoft Fabric

傳回以 regex 模式分隔的字串分割數據表。 如果模式不相符,函式會傳回字串。

REGEXP_SPLIT_TO_TABLE
(
    string_expression,
    pattern_expression [ , flags ]
)

需要資料庫相容性層級 170。 若要設定資料庫相容性層級,請檢閱 ALTER DATABASE (Transact-SQL) 相容性層級

Note

規則運算式可在 Azure SQL 受控執行個體中使用 SQL Server 2025 或一 律up-to日期更新原則

Arguments

string_expression

字元字串的表達式。

可以是字元字串的常數、變數或數據行。

數據類型: charncharvarcharnvarchar

Note

REGEXP_LIKE、 和REGEXP_COUNTREGEXP_INSTR函數支援 string_expression 參數的 LOB 類型 (varchar(max)nvarchar(max)) 最多 2 MB。

pattern_expression

要比對的正則表達式模式。 通常是文字常值。

數據類型: charncharvarcharnvarcharpattern_expression 支援最大字元長度 8,000 個字節。

flags

一或多個字元,指定用於搜尋相符專案的修飾詞。 類型為 varcharchar,最多 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_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