_ (шаблон — совпадение одного символа) (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Используйте символ подчеркивания _ для совпадения с любым одиночным символом в операции сравнения строк, которая использует сопоставление шаблонов, например LIKE
и PATINDEX
.
Примеры
A. Простой пример
В следующем примере возвращаются все имена баз данных, которые начинаются с буквы m
и имеют третью букву d
. Символ подчеркивания указывает, что вторым символом в имени может быть любая буква. Этому условию удовлетворяют базы данных model
и msdb
. А база данных master
— нет.
SELECT name FROM sys.databases
WHERE name LIKE 'm_d%';
Вот результирующий набор.
name
-----
model
msdb
Этому условию могут удовлетворять дополнительные базы данных.
Для представления нескольких символов можно использовать несколько символов подчеркивания. При изменении условия LIKE
для включения двух символов подчеркивания 'm__%
в результат будет включена база данных master.
Б. Более сложный пример
В следующем примере используется оператор _ для поиска в таблице Person
всех людей, у которых имя состоит из трех букв и заканчивается на an
.
-- USE AdventureWorks2022;
SELECT FirstName, LastName
FROM Person.Person
WHERE FirstName LIKE '_an'
ORDER BY FirstName;
В. Экранирование символа подчеркивания
В следующем примере возвращаются имена предопределенных ролей базы данных, например db_owner
и db_ddladmin
, но вместе с ними возвращается пользователь dbo
.
SELECT name FROM sys.database_principals
WHERE name LIKE 'db_%';
Символ подчеркивания в третьей позиции рассматривается как подстановочный знак и не выполняет фильтрацию только участников, начинающихся с буквы db_
. Чтоб экранировать символ подчеркивания, заключите его в скобки [_]
.
SELECT name FROM sys.database_principals
WHERE name LIKE 'db[_]%';
Теперь пользователь dbo
исключен.
Вот результирующий набор.
name
-------------
db_owner
db_accessadmin
db_securityadmin
...
См. также
LIKE (Transact-SQL)
PATINDEX (Transact-SQL)
% (подстановочный знак — символы для сопоставления)
[ ] (подстановочный знак — символы для сопоставления)
[^] (подстановочный знак — символы не для сопоставления)