字符串比较

s1ss1s 2009-07-03 01:46:18
包含部门号的两个字符串
1,2,4,49
49,1,4,2
如何能判断出
这两个字符串是一致的?
...全文
48 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeansy911 2009-07-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 xingqingxiang 的回复:]
三楼的果然是高手啊,佩服啊!
[/Quote]


4楼的 高高手。。。
soft_wsx 2009-07-03
  • 打赏
  • 举报
回复
四楼已经很好了,将两个字符串拆分为分,再来判断,如果用函数的话,改一下语句就可以了
s1ss1s 2009-07-03
  • 打赏
  • 举报
回复
4楼的方法能够实现 但是能否写成函数的形式 每次来调用
蓝天上的白云 2009-07-03
  • 打赏
  • 举报
回复
三楼的果然是高手啊,佩服啊!
csdyyr 2009-07-03
  • 打赏
  • 举报
回复
declare @str1 varchar(1000), @str2 varchar(1000)
set @str1='1,2,4,49'
set @str2='49,1,4,2'

create table #t1(id int)
create table #t2(id int)

set @str1='select '+replace(@str1, ',', ' union all select ')
set @str2='select '+replace(@str2, ',', ' union all select ')

insert #t1
exec(@str1)

insert #t2
exec(@str2)

if exists(
select *
from #t1 as a full join #t2 as b
on a.id=b.id
where a.id is null or b.id is null)

print N'两个字符串不一致'
else
print N'两个字符串一致'

drop table #t1,#t2
Zoezs 2009-07-03
  • 打赏
  • 举报
回复
全部拆开,一一比较。

declare @STR1 varchar(100)
declare @STR2 varchar(100)
set @STR1='1,2,4,49'
set @STR2='49,1,4,2'
set @STR1=@STR1+','
set @STR2=@STR2+','

select b.col into #temp1
from (select col=convert(xml,'<r><v>'+replace(left(@STR1,len(@STR1)-1),',','</v><v>')+'</v></r>')) a
outer apply (select col=C.v.value('.','nvarchar(10)') from a.col.nodes('/r/v') C(v)) b

select b.col into #temp2
from (select col=convert(xml,'<r><v>'+replace(left(@STR2,len(@STR2)-1),',','</v><v>')+'</v></r>')) a
outer apply (select col=C.v.value('.','nvarchar(10)') from a.col.nodes('/r/v') C(v)) b

if exists(select top 1 0 from #temp1 where col not in(select col from #temp2))
select 0
else
select 1


1


sgtzzc 2009-07-03
  • 打赏
  • 举报
回复
把他们分割成单独的元素,再比较
kingtiy 2009-07-03
  • 打赏
  • 举报
回复
首先按逗号分割,放进临时表。
再对两个表的数据进行比较。可以用游标。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧