在SQLSERVER中如何检测一个字符串中是否包含另一个字符串

在SQLSERVER中如何检测一个字符串中是否包含另一个字符串,第1张

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 数据类型。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12658638.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存