SQL Server 的 PATINDEX 函數用于在字符串中查找模式,并返回模式的起始位置。語法如下:
PATINDEX(‘pattern’, ‘string’)
其中,‘pattern’ 是要查找的模式,可以包含通配符,但只支持 % 和 _ 兩種通配符。‘string’ 是要在其中查找模式的字符串。
例如,我們要在字符串 ‘Hello, World!’ 中查找字符串 ‘lo’ 的起始位置,可以使用以下語句:
SELECT PATINDEX(‘%lo%’, ‘Hello, World!’)
執行結果為:4,表示 ‘lo’ 的起始位置是在第 4 個字符。
同樣地,如果要查找字符串中以 ‘He’ 開頭的子串,可以使用以下語句:
SELECT PATINDEX(‘He%’, ‘Hello, World!’)
執行結果為:1,表示以 ‘He’ 開頭的子串的起始位置是在第 1 個字符。
如果未能找到模式,則 PATINDEX 函數返回 0。
需要注意的是,PATINDEX 函數是區分大小寫的。如果希望進行大小寫不敏感的模式匹配,可以使用 COLLATE 子句指定一個不區分大小寫的字符集。例如:
SELECT PATINDEX(‘%lo%’ COLLATE Latin1_General_CI_AS, ‘Hello, World!’)
其中,CI 表示不區分大小寫,AS 表示使用字符集 Latin1_General。