我写了吼光标:
declare myCursor cursor
for select productID, productName from products
declare @productID int
declare @productName nvarchar(50)
open myCursor
fetch next from myCursor into @productID,@productName
print @productID
print @productName
set @productID=0
set @productName=''
while @@FETCH_STATUS=0
begin
fetch next from myCursor into @productID,@productName
print @productID
print @productName
set @productID=0
set @productName=''
end
close myCursor
deallocate myCursor
我希望它有另一个名为RowNomber的列,它在执行游标时显示每一行的数量。我应该在开始端块中声明另一个等于1的varriabl并加上1(+1)吗?有没有更好的方法呢? (我使用的是sql server 2008)
答案 0 :(得分:1)
最简单的方法可能就像你建议的那样。
另一种方法是将其添加到select
语句中,如下所示
select ROW_NUMBER() over (order by (select 0)) As Rownumber,
productID, productName from products
答案 1 :(得分:0)
增加局部变量就可以了。
另一种选择是在SELECT中使用ROW_NUMBER() ranking function。像这样:
select productID, productName
, ROW_NUMBER() OVER(ORDER BY productID) AS rownum
from products