1.从左至右
declare @stt varchar(200)
declare @i int
declare @sttl varchar(100)
set @stt='0_123_456_789'
set @i=0
while @i<len(@stt)
begin
set @i=charindex('_',@stt)
set @sttl=left(@stt,@i-1)
set @stt=right(@stt,len(@stt)-@i)
--print @sttl
print @stt
end
输出:
123_456_789
456_789
789
但我想
789
456
123
0
2.从右至左
create table #tempta(id int identity(1,1),nid varchar(200))
declare @stt varchar(200)
declare @strl varchar(200)
declare @i int
declare @sttl varchar(100)
set @stt='0_123_456_789'
set @i=0
while @i<len(@stt)
begin
set @i=charindex('_',@stt)
set @strl=left(@stt,@i-1)
set @stt=right(@stt,len(@stt)-@i)
insert into #tempta(nid) values(@strl)
end
declare @nid varchar(200)
declare open_cursor cursor for select nid from #tempta order by nid desc
open open_cursor
fetch next from open_cursor into @nid
while @@fetch_status=0 --循环取值
begin
print @nid
fetch next from open_cursor into @nid
end
close open_cursor
deallocate open_cursor
drop table #tempta