Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных Azure SQL
Управляемый экземпляр Azure SQL
База данных SQL в предварительной версии Microsoft Fabric
Используйте символ _
подчеркивания для сопоставления любого одного символа в операции сравнения строк, которая включает сопоставление шаблонов, например LIKE
и PATINDEX
.
Examples
Примеры кода в этой статье используют базу данных образца AdventureWorks2022
или AdventureWorksDW2022
, которую можно скачать с домашней страницы образцов и проектов сообщества Microsoft SQL Server и.
A. Basic example
В следующем примере возвращаются все имена баз данных, которые начинаются с буквы m
и имеют третью букву d
. Символ подчеркивания указывает, что вторым символом в имени может быть любая буква. Этому условию удовлетворяют базы данных model
и msdb
. А база данных master
— нет.
SELECT name FROM sys.databases
WHERE name LIKE 'm_d%';
Вот результирующий набор.
name
-----
model
msdb
У вас могут быть дополнительные базы данных, соответствующие этим критериям.
Для представления нескольких символов можно использовать несколько символов подчеркивания. Изменение условий LIKE
, включающих два подчеркивания 'm__%
, включает master
базу данных в результат.
B. Более сложный пример
В следующем примере оператор используется _
для поиска всех людей в Person
таблице, у которых есть трехбуквенный первый имя, который заканчивается an
.
SELECT FirstName, LastName
FROM Person.Person
WHERE FirstName LIKE '_an'
ORDER BY FirstName;
C. Экранирование символа подчеркивания
В следующем примере возвращаются имена фиксированных ролей базы данных, таких как 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
...