用临时表来分隔特殊符号(如逗号)的字符串
1
declare @Menu_id varchar(250)
2
declare @pos int
3
declare @oldPos int
4
declare @tempstr varchar(100)
5
6
7
create table #temp_id ( id int )
8
9
set @Menu_id = '60,62,63,64'
10
set @pos=1
11
set @oldPos=1
12
while @pos<len(@Menu_id)
13
begin
14
set @pos=charindex(',',@Menu_id, @oldpos)
15
if @pos>0
16
begin
17
set @tempstr=substring(@Menu_id,@oldpos,@pos-@oldpos)
18
set @oldpos=@pos+1
19
end
20
else
21
begin
22
set @tempstr=substring(@Menu_id,@oldpos,len(@Menu_id)-@oldpos+1)
23
set @pos=len(@Menu_id)
24
end
25
insert into #temp_id values( @tempstr )
26
end
27
if len(@Menu_id) = 1
28
insert into #temp_id values( @Menu_id )
29
30
select id from #temp_id
31
drop table #temp_id
declare @Menu_id varchar(250)2
declare @pos int 3
declare @oldPos int 4
declare @tempstr varchar(100) 5

6

7
create table #temp_id ( id int ) 8

9
set @Menu_id = '60,62,63,64'10
set @pos=1 11
set @oldPos=1 12
while @pos<len(@Menu_id) 13
begin 14
set @pos=charindex(',',@Menu_id, @oldpos) 15
if @pos>0 16
begin 17
set @tempstr=substring(@Menu_id,@oldpos,@pos-@oldpos) 18
set @oldpos=@pos+1 19
end 20
else 21
begin 22
set @tempstr=substring(@Menu_id,@oldpos,len(@Menu_id)-@oldpos+1) 23
set @pos=len(@Menu_id) 24
end 25
insert into #temp_id values( @tempstr )26
end 27
if len(@Menu_id) = 128
insert into #temp_id values( @Menu_id )29

30
select id from #temp_id31
drop table #temp_id

浙公网安备 33010602011771号