適用対象: SQL Server 2025 (17.x)
Azure SQL Database
Azure SQL Managed Instance
SQL データベース
正規表現パターンで区切られた、分割された文字列のテーブルを返します。 パターンに一致するものがない場合、関数は文字列を返します。
REGEXP_SPLIT_TO_TABLE
(
string_expression,
pattern_expression [ , flags ]
)
データベース互換性レベル 170 が必要です。 データベース互換性レベルを設定するには、 ALTER DATABASE (Transact-SQL) 互換性レベルを確認します。
Note
正規表現は、SQL Server 2025 または Always-up-to-date更新ポリシーを使用して Azure SQL Managed Instance で使用できます。
Arguments
string_expression
文字列の式。
文字列の定数、変数、または列を指定できます。
データ型: char、 nchar、 varchar、または nvarchar。
Note
REGEXP_LIKE、REGEXP_COUNT、およびREGEXP_INSTR関数は、string_expression パラメーターに対して最大 2 MB の LOB 型 (varchar(max) と nvarchar(max)) をサポートします。
pattern_expression
照合する正規表現パターン。 通常はテキスト リテラルです。
データ型: char、 nchar、 varchar、または nvarchar。 pattern_expression では、最大文字数 8,000 バイトがサポートされています。
flags
一致を検索するために使用する修飾子を指定する 1 つ以上の文字。 型は 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 は、次の 2 列のテーブルを返します。
| 列名 | データの種類 | 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