用截取字符串的方法代替游标-SQL server

先将一个SQL语句结果集返回到一个字符串中,然后遍历这个字符串来代替游标:
我觉得这样效率应该比游标的效率要高,
declare @str varchar(100)
declare @beginSearchPos int
declare @nextSearchPos int
declare @length int
set @beginSearchPos = 1
set @nextSearchpos = 0
set @str = 'aaa|bbb|ccc|ddd|'
set @length = len(@str)
while @beginSearchPos <>0 and @nextSearchPos < @length
begin
 set @nextSearchPos = charindex('|',@str,@beginSearchPos)
 if @nextSearchPos = 0
  begin
   print substring(@str,@beginSearchPos,@length-@beginSearchPos+1)
     set @beginSearchPos=0
  end
 else
  begin
   print substring(@str,@beginSearchPos,@nextSearchPos-@beginSearchPos)
   set @beginSearchPos = @nextSearchPos + 1
  end
 end

posted @ 2016-05-17 10:45  lovemx  阅读(157)  评论(0)    收藏  举报