Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: SQL Server 2025 (17.x) Предварительная версия
базы данных
SQL Azure Управляемого экземпляра
SQL Azureв Microsoft Fabric Preview
Note
В отношении технологии (как предварительной версии функции), описанной в этой статье, действуют дополнительные условия использования предварительных версий Microsoft Azure.
Возвращает таблицу строк, разделенную шаблоном регулярных выражений. Если шаблон не соответствует, функция возвращает строку.
REGEXP_SPLIT_TO_TABLE
(
string_expression,
pattern_expression [, flags ]
)
Требуется уровень совместимости базы данных 170. Чтобы задать уровень совместимости базы данных, просмотрите уровень совместимости ALTER DATABASE (Transact-SQL) .
Note
Регулярные выражения доступны в Управляемом экземпляре SQL Azure, настроенном с помощью политики обновления Always-up-to-date .
Arguments
string_expression
Выражение символьной строки.
Может быть константой, переменной или столбцом символьной строки.
Типы данных: char, nchar nchar, varcharили nvarchar nvarchar.
Note
REGEXP_LIKE
REGEXP_COUNT
Функции REGEXP_INSTR
и функции поддерживают бизнес-типы (varchar(max) и nvarchar(max)) до 2 МБ для параметра string_expression.
pattern_expression
Шаблон регулярного выражения для сопоставления. Обычно текстовый литерал.
Типы данных: char, nchar nchar, varcharили nvarchar 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
возвращает следующую таблицу двух столбцов:
Column name | Data type | 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