適用於: SQL Server Azure SQL Database 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%';

結果集如下所示。

----- model

您可能有符合此準則的其他資料庫。

您可以使用多個底線來代表多個字元。 將準則變更 LIKE 為包含兩個 'm__% 底線,會在 master 結果中包含資料庫。

B. 更複雜的範例

下列範例會 _ 使用 運算符來尋找數據表中的所有 Person 人員,其結尾為 三個字母的第一個名稱 an

SELECT FirstName, LastName
FROM Person.Person
WHERE FirstName LIKE '_an'
ORDER BY FirstName;

C. 逸出底線字元

下列範例會傳回 db_ownerdb_ddladmin等固定資料庫角色的名稱,但也會傳回 dbo 使用者。

SELECT name FROM sys.database_principals
WHERE name LIKE 'db_%';

第三個字元位置的底線會視為通配符,而且不會只篩選以字母 db_開頭的主體。 若要逸出底線,請將它括在方括弧中 [_]

SELECT name FROM sys.database_principals
WHERE name LIKE 'db[_]%';

現在已經排除 dbo 使用者。

結果集如下所示。

------------- db_owner db_accessadmin db_securityadmin LIKE (Transact-SQL) PATINDEX (Transact-SQL) 百分比字元 (通配符 - 要比對的字元) (Transact-SQL) [](通配符 - 要比對的字元)(Transact-SQL) [^](通配符 - 字元不相符)(Transact-SQL)