sql 循环表中记录


=========================================================================循环排序查询数据=============================================================

这个写的是个函数,以便存储过程中调用!
USE [数据库名称]
GO
/****** Object: UserDefinedFunction [dbo].[GetServer] Script Date: 05/22/2014 17:31:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[GetServer]
()
RETURNS int

AS
BEGIN
declare @count int;--查询表中数据
declare @number int;--循环条件
declare @id int;---表ID

declare @capbility int;
declare @existnumber int;

select @count=count(*) from serverlist;
if(@count is not null and @count<>0)----如果表中有数据才可以进行循环
begin
set @number=0;
while @number <@count
begin
select @number = @number +1;----每循环一次循环条件+1
---将表按照循序进行排序,然后每次查询排序字段
select @id =hh.id,@capbility=hh.capbility, @existnumber=hh.existnumber
from (select ROW_NUMBER() over (order by id) 'rowindex',* from serverlist)hh where hh.rowindex = @number;
if(@existnumber<@capbility)
begin
return @id;
break;
end
end
end
return 0;---如果条件不符合将其返回0
END
=========================================================================循环排序查询数据结束================================================================

原文地址:https://www.cnblogs.com/wang-123/p/3746179.html