PATINDEX()函數(shù)是SQL Server中的一個(gè)字符函數(shù),用于查詢(xún)字符串中某種模式的字符第一次出現(xiàn)的位置。
PATINDEX(pattern, expression)
其中,pattern是要搜索的模式,可以是普通字符、通配符或正則表達(dá)式;expression是要搜索的表達(dá)式。
PATINDEX()函數(shù)返回的是第一個(gè)匹配的字符位置,如果沒(méi)有找到匹配的字符,則返回0。
示例:
SELECT PATINDEX(‘%a%’, ‘a(chǎn)bcde’) – 返回2
SELECT PATINDEX(‘[a-z]%’, ‘a(chǎn)bcde’) – 返回1
SELECT PATINDEX(‘\w{2} \w{2} \w{2}’, ‘AB CD EF’) – 返回1
需要注意的是,PATINDEX()函數(shù)不區(qū)分大小寫(xiě),如果需要區(qū)分大小寫(xiě),需要使用BINARY關(guān)鍵字。
示例:
SELECT PATINDEX(BINARY ‘a(chǎn)%’, ‘ABC’) – 返回0
SELECT PATINDEX(BINARY ‘A%’, ‘ABC’) – 返回1
PATINDEX()函數(shù)在實(shí)際應(yīng)用中,常用于模糊搜索、正則表達(dá)式匹配等場(chǎng)景。