代替游标循环的方法

游标可以很好的解决麻烦的循环问题,但最大缺点就是执行效率低下,特别大数据量。网上发现很多代替游标的方法,感觉这个比较好用拿来备用

 

DECLARE   @r   int ;
DECLARE   @number   int ;
DECLARE   @tb1   table  (numb  int ,tid  int )
insert   into   @tb1 (numb,tid )
SELECT  ROW_NUMBER()  OVER  ( ORDER   BY  userid )  AS   number ,tid  FROM  TableName ; -- 关键

SELECT   @number   =   MAX (numb)  FROM   @tb1 ;
SET   @r = 1
WHILE  ( @r   <=   @number )
BEGIN
-- -sql 语句
select  numb  from   @tb1   where  numb  =   @r ;
SET   @r = @r + 1
END

 

你可能感兴趣的:(游标)