適用於:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric 中的 SQL 資料庫
使用底線字元 _ 比對字串比較作業中涉及模式比對的任何單一字元,例如 LIKE 和 PATINDEX。
Examples
本文中的程式代碼範例會使用 AdventureWorks2025 或 AdventureWorksDW2025 範例資料庫,您可以從 Microsoft SQL Server 範例和社群專案 首頁下載。
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。
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
...