求字符串比较好的方法
select str1 = 'aa,ab,cc '
select str2 = 'ab,cc,aa '
select str3 = 'ab1,cc,aa '
如何写个function, 只要分隔符的字符完全一样,则返回1,否则返回0.
就是说str2只是把str1的顺序打乱.
CompareString(str1,str2) = 1
CompareString(str2,str3) = 0
ALTER function CompareString(
@strA varchar(1000),
@strB varchar(1000),
@separator varchar(10))
returns int
as
begin
这儿怎么写?
end
[解决办法]
declare @s1 varchar(100),@s2 varchar(100)
set @s1= 'aa,ab,cc '
set @s2= 'ab,cc,aa '
/*
Limpire:把@s1和@s2当输入参数,以下代码写在函数里就行了
*/
declare @return bit
set @return = 1
set @s1=@s1+ ', '
set @s2=@s2+ ', '
while charindex( ', ',@s1)> 0
begin
if charindex(left(@s1,charindex( ', ',@s1)),@s2)=0
begin
set @return=0
break
end
set @s1=right(@s1,len(@s1)-charindex( ', ',@s1))
end
--return(@return)
select @return