_ (萬用字元 - 符合單一字元) (Transact-SQL)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體
使用底線字元 _ 在涉及模式比對 (如 LIKE
和 PATINDEX
) 的字串比較運算式中,比對任何單一字元。
範例
A:簡單範例
以下範例傳回開頭為字母 m
且第三個字母具有 d
的所有資料庫名稱。 底線字元指定名稱的第二個字元可以是任何字母。 model
和 msdb
資料庫符合此原則。 master
資料庫則不符合。
SELECT name FROM sys.databases
WHERE name LIKE 'm_d%';
結果集如下所示。
name
-----
model
msdb
您可能具有符合此原則的其他資料庫。
您可以使用多個底線來代表多個字元。 將 LIKE
原則變更為包含兩個底線 'm__%
,就會在結果中包含 master 資料庫。
B:更複雜的範例
下列範例會使用 _ 運算子來尋找在 Person
資料表中,所有名字都是三個字母且結尾是 an
的人員。
-- USE AdventureWorks2022;
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
...
另請參閱
LIKE (Transact-SQL)
PATINDEX (Transact-SQL)
% (萬用字元 - 相符的字元)
[ ] (萬用字元 - 相符的字元)
[^] (萬用字元 - 不相符的字元)