适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Microsoft Fabric 预览版中的 SQL 数据库
使用下划线字符 _ 匹配字符串比较作中涉及模式匹配的任何单个字符,例如 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
...