Поделиться через


[^] (Подстановочный знак — символы не совпадают) (Transact-SQL)

Применимо к:SQL ServerБаза данных Azure SQLУправляемый экземпляр Azure SQLБаза данных SQL в предварительной версии Microsoft Fabric

Соответствует любому одному символу, не указанному в диапазоне или заданном между квадратными скобками [^]. Эти символы-шаблоны могут использоваться в тех операциях сравнения строк, которые задействуют соответствие шаблону, например LIKE или PATINDEX.

Examples

Примеры кода в этой статье используют базу данных образца AdventureWorks2022 или AdventureWorksDW2022, которую можно скачать с домашней страницы образцов и проектов сообщества Microsoft SQL Server и.

Ответ. Базовый пример

В следующем примере оператор используется [^] для поиска пяти лучших пользователей в Contact таблице, у которых есть имя, которое начинается Al с и имеет третью букву, которая не является буквой a.

SELECT TOP 5 FirstName, LastName
FROM Person.Person
WHERE FirstName LIKE 'Al[^a]%';

Вот результирующий набор.

FirstName     LastName
---------     --------
Alex          Adams
Alexandra     Adams
Allison       Adams
Alisha        Alan
Alexandra     Alexander

Б. Поиск диапазонов символов

Набор подстановочных знаков может содержать отдельные символы или диапазоны символов, а также сочетания символов и диапазонов. В следующем примере оператор используется [^] для поиска строки, которая не начинается с буквы или числа.

SELECT [object_id], OBJECT_NAME(object_id) AS [object_name], name, column_id
FROM sys.columns
WHERE name LIKE '[^0-9A-z]%';

Вот результирующий набор.

object_id     object_name   name    column_id
---------     -----------   ----    ---------
1591676718    JunkTable     _xyz    1