CHARINDEX是一个很简单的函数,返回字符串中指定表达式的起始位置。返回一个INT值。
Q:为什么这么简单的函数还要说呢?
A:因为我犯了认识上的错误,导致出现问题。所以特别拿出来说下
charindex(参数一,参数二,参数三)
参数一:需要查找的字符串
参数二:查找对象
参数三:起始位置(可无)
select 1
where charindex (‘a‘,‘cbacaa‘)=1
由于错误的认为:返回值为1则字段‘cbacaa‘存在‘a‘。
然后有个同事说应该是:
select 1
where charindex (‘d‘,‘cbacaa‘)>-1
其实也是不对的。
最后查了下资料,定义是这样:返回字符串中指定表达式的起始位置。
所以正确的表达式应该是这样:
select 1
where charindex (‘d‘,‘cbacaa‘)>-0
1.select charindex (‘a‘,‘cbacaa‘)--返回值:3
2.select charindex (‘d‘,‘cbacaa‘)--返回值:0
3.select charindex (‘a‘,‘cbacaa‘,4)--返回值:5
4.select charindex (‘b‘,‘cbacaa‘,4)--返回值:0
原文地址:http://sukunwu.blog.51cto.com/10453116/1674023