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。