问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sql中比较一个字符串中是否含有另一个字符串中的一个字符

发布网友 发布时间:2022-04-21 09:35

我来回答

4个回答

热心网友 时间:2023-11-09 02:35

1、既然你要判断其中一个是否包含了另一个,那你条件肯定要给SQL,SQL才能帮你找到的,2、这个条件肯定是你要给出的。比如str1='1`2`3`4`5'str2='1`2`3`4'那你叫SQL判断的其中的话,可以:Select
CharIndex('5',str1)
--这里的“5”具体要代入什么值去判断,就要你给出来了。Select
CharIndex('2`3',str1)
--这类的SQL是可以帮你去判断的。不包含的话就返回0否则就返回第一个相同字符的位置,比如这个就返回3 给你写一个函数来操作:
Create
function
fSearch(@inStr
varchar(1000),@fndStr
varchar(1000),@doc
varchar(10))

returns
bit

as

begin

declare
@ii
int,@rStr
varchar(1000),@c
varchar(1000)

select
@rStr=@fndStr

while
len(@rStr)>0

begin
Select
@ii=Charindex(@doc,@rStr)

if
@ii=0
begin

return
0
end
else
begin

select
@c=substring(@rStr,1,@ii-1)

if
charIndex(@c,@inStr)>0
return
1

else

begin
select
@rStr=substring(@rStr,@ii+len(@doc),len(@rStr))

end
end

end

return
0

end
--参数:@inStr
待搜索字串,@fndStr
搜索字串,@doc
分隔符--
例:select
dbo.fSearch('1,2,3,4,5,6','3,6,5,8,2',',')
返回0-不匹配,返回1-匹配(@instr中有@fndStr内容)--可以用于表搜索,如:--
Select
*,dbo.fSearch(str,'3,6,5,8,2',',')
as
是否匹配 from
表名--
@fndStr和@doc两个参数就需要你自己提供了,@inStr可以是数据表里的某个待搜索字段名

热心网友 时间:2023-11-09 02:36

先建一张辅助表:
declare @a int
set @a=0
while @a<10000
begin
insert into nums select @a
set @a=@a+1
end
然后写一个函数:
alter function dbo.charindex_of(@str1 varchar(100) ,@str2 varchar(100))
returns int
as
begin
declare @a int
select @a=count(*) from (select subString(@str2,n,charindex('`',@str2+'`',n)-n) rn
from nums where n<len(@str2) and subString('`'+@str2,n,1)='`') a,
(select subString(@str1,n,charindex('`',@str1+'`',n)-n) rn
from nums where n<len(@str1) and subString('`'+@str1,n,1)='`') b
where a.rn=b.rn
return @a
end
然后就可以比较了
declare @str1 varchar(100) ,@str2 varchar(100)
set @str1='1`2`3`4`5'
set @str2='1`2`3`4'
select dbo.charindex_of(@str1,@str2)
返加的是匹配的个数,当然大于0就说明满足条件,如有疑问,可以HI我

热心网友 时间:2023-11-09 02:36

这个不太好实现吧,要是数据固定的话就好实现了,你参考下这两个函数
charindex()或patindex()

热心网友 时间:2023-11-09 02:37

select charindex('1234','12345')
为1存在,0为不存在
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
刺身怎么下刀? 养老护理员资格证的等级是什么 养老护理员证有几级啊 工行手机银行如何提前还房贷 工行手机银行提前还房贷操作 工行手机银行app可以提前房贷还款吗_工行手机银行提前还房贷步骤... 金龙八部是什么时出版的 天龙八部陈浩民那一年出版的 金庸作品集:天龙八部图书信息 puum243请到柜面、网银或手机银行修改密码? 超重被交警抓一般怎么处理 java如何判断是一个字符串有多少字符 C语言如何判断 某个字符串中有多少字符? java怎么接收从键盘输入了多少个字符串 【cpp】如何判断一个字符串中含有多少字符 批处理如何检查输入字符串长度是否为8~63位 c语言中输入一个字符串并判断在数组中的第几位应该怎么判断啊? 批处理 如何判断输入的字符串个数 java如何判断字符串中有几个数字 c语言怎样检测一行输入上有几个整数 C语言用户输入字符的时候我如何知道输入字符的个数 c语言怎么检测输入字符串的个数 python语言中如何判断一个字符串有多少位 Java中怎么确定输入的数是几位数 请问c++里怎样判断输入或输出的字符串有几位? 东北男明星都有谁? 为什么不能嫁东北男人 东北男生好吗???有什么特点 东北男生是不是都是很强势很霸道 东北男的爱情 东北男主播破破在那个平台上 c++中如何处理我输入多段字符串但是不确定自己要输入多少个字符串 C++中如何判断输入的字符串的第N个字符是什么 java怎么判断输入的字符串是数字或“*”符号?长度为4位 从上往下跳是什么短语? 古人写字,为何从上到下,从右往左? 饶雪漫左耳最老的一部里面许弋和蒋姣在酒吧里遇见时放的那首英文歌叫什么名字 电信手机有卡显示无信号 插上电信卡一直显示无SIM卡怎么回事 电信卡提示无服务 西红柿炖牛腩炖多久合适? 西红柿牛腩要炖多久啊?用普通铁锅 用砂锅做西红柿炖牛腩需要多长时间 西红柿炖牛腩要是用普通锅炖,大概需要多少时间呢? 西红柿炖牛腩选什么牛肉好,炖多少时间? 这漫画哪里找 西红柿炖牛肉要炖多久 哔咔漫画分流123区别 “西红柿炖牛腩”怎么做? 如何用高压锅做西红柿炖牛腩? 西红柿炖牛腩窍门