A. 搭配 PATINDEX 使用模式
下列範例會尋找 ensure 模式在 Document 資料表中 DocumentSummary 資料行之特定資料列中的起始位置。
USE AdventureWorks;
GO
SELECT PATINDEX('%ensure%',DocumentSummary)
FROM Production.Document
WHERE DocumentID = 3;
GO
以下為結果集:
-----------
64
(1 row(s) affected)
如果您沒有利用 WHERE 子句來限制要搜尋的資料列,查詢會傳回資料表的所有資料列,且針對找到模式的所有資料列報告非零值,找不到模式的所有資料列則會報告零。
B. 搭配 PATINDEX 使用萬用字元
下列範例利用萬用字元來尋找 en_ure 模式在 Document 資料表中 DocumentSummary 資料行之特定資料列中的起始位置,底線是代表仕何字元的萬用字元。
USE AdventureWorks;
GO
SELECT PATINDEX('%en_ure%', DocumentSummary)
FROM Production.Document
WHERE DocumentID = 3;
GO
以下為結果集:
------------
64
(1 row(s) affected)
如果您沒有限制要搜尋的資料列,查詢會傳回資料表的所有資料列,且會針對找到模式的資料列報告非零值。
C. 搭配 PATINDEX 使用 COLLATE
下列範例利用 COLLATE 函數來明確指定所搜尋之運算式的定序。
USE tempdb;
GO
SELECT PATINDEX ( '%ein%', 'Das ist ein Test' COLLATE Latin1_General_BIN) ;
GO