CHARINDEX

CHARINDEX

说明:

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

时间: 2025-01-15 00:23:04

CHARINDEX的相关文章

sql中的CHARINDEX和暂时表

update #temp set #temp.Recycle=case when UnionA.num>0 then 1 else 0 end from (select GradeID,sum(num)as num from AreaAllot where CHARINDEX(@Area,AreaAllot.Area)=1 and LEN(@Area)=LEN(Area)-2 group by GradeID)UnionA inner join #temp on UnionA.GradeID=#

sql substring charindex

substring(s1,int,int) 截取字符串,起始位置,截取个数,返回截取后的字符串 charindex(s1,s2)查找字符s1在s2中的位置.返回int位置 SELECT substring(productid,0,(charindex(')',productid)+1)) as id1, substring(partid,0,(charindex(')',partid)+1)) as id2,* FROM IE_GYGJB_A where isnull(productid,'')

CHARINDEX (Transact-SQL)

语法:CHARINDEX ( 表达式1,表达式2,开始位置)参数: 表达式1 expression that contains the sequence to be found.' xmlspace="preserve" >包含要查找的序列的字符表达式. expressionToFind is limited to 8000 characters.' xmlspace="preserve" >表达式1最多包含 8000 个字符. 表达式2要搜索的字符表达

SQL SERVER CHARINDEX函数

CHARINDEX函数经常常使用来在一段字符中搜索字符或者字符串.假设被搜索的字符中包括有要搜索的字符,那么这个函数返回一个非零的整数,这个整数是要搜索的字符在被搜索的字符中的開始位数.即CHARINDEX函数返回字符或者字符串在还有一个字符串中的起始位置. CHARINDEX函数调用方法例如以下: CHARINDEX ( expression1 , expression2 [ , start_location ] ) Expression1是要到expression2中寻找的字符中,start

MSSQL charindex

CHARINDEX 返回字符串中指定表达式的起始位置. 语法 CHARINDEX ( expression1 , expression2 [ , start_location ] ) 参数 expression1 一个表达式,其中包含要寻找的字符的次序.expression1 是一个短字符数据类型分类的表达式. expression2 一个表达式,通常是一个用于搜索指定序列的列.expression2 属于字符串数据类型分类. start_location 在 expression2 中搜索 e

SQL变量、Substring、charindex、case函数、去除重复

isnull(aa,0)删除表数据: truncate table aaa 添加字段: ALTER TABLE table1 ADD col1 varchar(200) DEFAULT '2008-05-22' 修改字段名: alter table table1 rename column col1 to col2; 修改字段属性: alter table table1 alter column col1 varchar(200) not null; 修改默认值: alter table tab

SQL SERVER CHARINDEX功能

CHARINDEX功能经常用于通过在字符或字符串中的字符范围搜索. 假定被搜索的字符包括字符搜索,然后该函数返回一个非零整数,的字符在被搜索的字符中的開始位数.即CHARINDEX函数返回字符或者字符串在还有一个字符串中的起始位置. CHARINDEX函数调用方法例如以下: CHARINDEX ( expression1 , expression2 [ , start_location ] ) Expression1是要到expression2中寻找的字符中,start_location是CHA

charindex函数的用法

例一: CustomName包含客户的First Name和Last Name,它们之间被一个空格隔开.我们用CHARINDX函数确定两个名字中间空格的位置.通过这个方法,我们可以分析ContactName列的空格位置,这样可以只显示这个列的last name部分. select top 5 substring(ContactName,charindex(' ',ContactName)+1,len(ContactName)) as [Last Name] from customers CHAR

sql中的CHARINDEX和临时表

update #temp set #temp.Recycle=case when UnionA.num>0 then 1 else 0 end from (select GradeID,sum(num)as num from AreaAllot where CHARINDEX(@Area,AreaAllot.Area)=1 and LEN(@Area)=LEN(Area)-2 group by GradeID)UnionA inner join #temp on UnionA.GradeID=#