使用while循环来对每一行执行操作。示例代码如下:
DECLARE @count INT
SET @count=0
DECLARE @maxCount INT
SET @maxCount=0
SELECT @maxCount=COUNT(*) FROM TwitterHot
WHERE CataID=1
WHILE @maxCount>0
BEGIN
UPDATE TwitterHot SET Sort=@count+1
WHERE ID=(SELECT TOP 1 ID FROM TwitterHot WHERE Sort=0 AND cataID=1 ORDER BY ID)
SET @count=@count+1
SET @maxCount=@maxCount-1
END
使用SQL2005中的新函数ROW_NUMBER()和while循环来对每一行执行操作。示例代码如下:
selectDepartment_NoasdepartmentNo,ROW_NUMBER() OVER(ORDER BY Department_No) AS rowNumber into#depTemp--建立临时表
fromdepartments
declare@maxint--获得最大的rowNumber
select@max=max(rownumber)
from#depTemp
declare@rowNoint
set@rowNo=1
while@rowNo<=@max--对每一个rowNumber进行循环操作
begin
--这儿对每一行要进行的操作的代码
set@rowNo=@rowNo+1
end
droptable#depTemp--清除临时表
本文介绍了如何使用SQL Server 2005中的ROW_NUMBER()函数与While循环对数据集进行高效操作。通过实例演示了更新特定条件下的行数,并在循环中对每行数据进行特定处理,旨在提升数据库查询效率。

被折叠的 条评论
为什么被折叠?



