Applies to:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL database in 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. 更复杂的示例
以下示例使用_
运算符查找表中所有以三个字母名字结尾an
的人员Person
。
SELECT FirstName, LastName
FROM Person.Person
WHERE FirstName LIKE '_an'
ORDER BY FirstName;
C. 转义下划线字符
The following example returns the names of the fixed database roles like db_owner and db_ddladmin, but it also returns the dbo user.
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
...