PATINDEX函數用于在字符串中查找指定的模式,并返回模式第一次出現的位置。它的語法如下:
PATINDEX ( ‘%pattern%’ , expression )
其中,pattern是要查找的模式,可以包含通配符,expression是要搜索的表達式。
例如,我們有一個字符串"Hello, World!",我們想要查找字符串中第一次出現的"World"的位置,可以使用以下語句:
SELECT PATINDEX(‘%World%’, ‘Hello, World!’) AS Position;
這將返回結果為7,表示"World"在字符串中的位置是從第7個字符開始。
注意,PATINDEX函數區分大小寫。如果要忽略大小寫,可以使用COLLATE子句:
SELECT PATINDEX(‘%world%’ COLLATE Latin1_General_CS_AS, ‘Hello, World!’) AS Position;
這將返回結果為0,表示沒有找到指定的模式。
另外,如果要查找模式的位置范圍,可以結合SUBSTRING函數使用:
SELECT SUBSTRING(‘Hello, World!’, PATINDEX(‘%World%’, ‘Hello, World!’), 5) AS Substring;
這將返回結果為"World",表示從字符串中找到的模式的子串。