--参数:@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可以是数据表里的某个待搜索字段名
Create function fSearch(@inStr varchar(1000),@fndStr varchar(1000),@doc varchar(10))
returns bitas
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