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
=========================================================================循环排序查询数据结束================================================================