Какая польза от ^ в patindex в SQL Server? - PullRequest
0 голосов
/ 05 апреля 2019

Когда я выполню это

select PATINDEX('%[0 ]%', '03/SI/00807/18-19')

Я получаю 1.

Используя ^, вот так:

select PATINDEX('%[^0 ]%', '03/SI/00807/18-19') 

Я получаю 2.

Ответы [ 2 ]

1 голос
/ 05 апреля 2019

[^] Позволяет сопоставить любой символ, не входящий в скобки [^] (например, [^ abc] будет соответствовать любому символу, который не является символом a, b или c)Принимая во внимание, что

[] Позволяет сопоставить любой символ в скобках [] (например, [abc] будет соответствовать символам a, b или c)

_ Позволяет сопоставить по одному символу

% Позволяет сопоставить любую строку любой длины (включая нулевую длину)

0 голосов
/ 05 апреля 2019

[^abcd] означает: любой один символ, КРОМЕ а, b, c или d

select PATINDEX('%[0 ]%', '03/SI/00807/18-19')

Первый символ в вашей строке (0 или пробел) - это 0 на первом месте, поэтому patindex возвращает 1.

select PATINDEX('%[^0 ]%', '03/SI/00807/18-19') 

Первый символ в вашей строке (, не 0 или пробел) - это 3 на втором месте, поэтому patindex возвращает 2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...