SQL语句使用CHARINDEX函数,来测试一个字符串中是否包含另一个字符串中的方法:
一、CHARINDEX函数介绍
1、函数功能:函数返回字符或者字符串在另一个字符串中的起始位置。
2、语法:CHARINDEX ( expression1 , expression2 [ , start_location ] )
3、参数说明:expression1是要到expression2中寻找的字符中,start_location是CHARINDEX函数开始在expression2中找expression1的位置。
4、函数返回值:CHARINDEX函数返回一个整数,返回的整数是要找的字符串在被找的字符串中的位置。假如CHARINDEX没有找到要找的字符串,那么返回0
二、例:在字符串‘abcdef’中查找字符串‘cd’,运行结果为3,因为C为第3个字符。
Create Table 表A(
id int,
info Varchar(10)
)
insert into 表A values( 1 , '飞机')
insert into 表A values( 2, '习某某')
declare @A varchar(100)='习某某经常做飞机出去玩'
select @A=REPLACE(@A,info,replicate('',len(info))) from 表A
select @A
--做个自定义函数
Create Function fn_th(@A VArchar(8000))
Returns Varchar(4000)
As
Begin
select @A=REPLACE(@A,info,replicate('',len(info))) from 表A
--星号固定的情况
-- select @A=REPLACE(@A,info,'') from 表A
return @A
End
--调用就是 select dbofn_th('飞机123456啊')三、取子串函数
1、left()
LEFT (<character_expression>, <integer_expression>)
返回character_expression 左起 integer_expression 个字符。
2、RIGHT()
RIGHT (<character_expression>, <integer_expression>)
返回character_expression 右起 integer_expression 个字符。
3、SUBSTRING()
SUBSTRING (<expression>, <starting_ position>, length)
返回从字符串左边第starting_ position 个字符起length个字符的部分。
四、字符串比较函数
1、CHARINDEX() ----这个应该是你想要的函数!!
返回字符串中某个指定的子串出现的开始位置。
CHARINDEX (<’substring_expression’>, <expression>)
其中substring _expression 是所要查找的字符表达式,expression 可为字符串也可为列名表达式。如果没有发现子串,则返回0 值。
此函数不能用于TEXT 和IMAGE 数据类型。
2、PATINDEX()
返回字符串中某个指定的子串出现的开始位置。
PATINDEX (<’%substring _expression%’>, <column_ name>)其中子串表达式前后必须有百分号“%”否则返回值为0。
与CHARINDEX 函数不同的是,PATINDEX函数的子串中可以使用通配符,且此函数可用于CHAR、 VARCHAR 和TEXT 数据类型。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)