SQL PATINDEX - 判断是否包含字符(表达式),返回字符(表达式)的第一次出现的起始位置
1、PATINDEX(patindex)函数介绍
返回模式在指定表达式中第一次出现的起始位置;如果在所有有效的文本和字符数据类型中都找不到该模式,则返回零。
PATINDEX ( '%pattern%' , expression )
参数说明:
返回类型:bigint(如果 expression 的数据类型为 varchar(max) 或 nvarchar(max));否则为 int。
注解:
2、使用示例:
2.1 常用:
SELECT test = PATINDEX('%tao%', 'Hi,TaoRoy'); --输出4
2.2 可以使用任意通配符,例如,使用通配符(_)
SELECT test = PATINDEX('%t_o%', 'Hi,TaoRoy'); --输出4
PATINDEX 的作用与 LIKE 类似,与 LIKE 不同的是,PATINDEX 返回一个位置,这与 CHARINDEX 类似。
2.3 使用 [^] 字符串运算符查找不是数字、字母或空格的字符的位置。
SELECT test = PATINDEX('%[^ 0-9A-Za-z]%', 'Hi,TaoRoy'); --输出3 SELECT test = PATINDEX('%[0-9A-Za-z]%', 'Hi,TaoRoy'); --输出1
2.4 排列规则(Latin1_General_BIN)、区分大小写(Latin1_General_CS_AS)和不区分大小写(Latin1_General_CI_AS)
SELECT test = PATINDEX('%tao%', 'Hi,TaoRoy' COLLATE Latin1_General_BIN); --输出0 SELECT test = PATINDEX('%Tao%', 'Hi,TaoRoy' COLLATE Latin1_General_BIN); --输出4 --区分大小写 SELECT test = PATINDEX('%tao%', 'Hi,TaoRoy' COLLATE Latin1_General_CS_AS); --输出0 --不区分大小写 SELECT test = PATINDEX('%tao%', 'Hi,TaoRoy' COLLATE Latin1_General_CI_AS); --输出4
创建时间:2021.12.28 更新时间: