• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
夕诺
博客园    首页    新随笔    联系   管理    订阅  订阅
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
=========================================================================循环排序查询数据结束================================================================

posted on 2014-05-22 17:38  夕诺  阅读(16911)  评论(1)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3