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

时间: 2024-10-05 06:38:00

sql 循环表中记录的相关文章

SQL 把表中字段存储的逗号隔开内容转换成列表形式

原文:[原创]SQL 把表中字段存储的逗号隔开内容转换成列表形式 我们日常开发中,不管是表设计问题抑或是其他什么原因,或多或少都会遇到一张表中有一个字段存储的内容是用逗号隔开的列表. 具体效果如下图: ------> 从左边图转换成右边图,像这种需求,我们难免会遇到. 今天我写了个存储过程来解决这种问题.主要方式是利用master..spt_values表. 具体存储过程如下: -- Author: LHM -- Create date: 2015-01-10 -- Description: 把

在一个SQL Server表中的多个列找出最大值

在一个SQL Server表中一行的多个列找出最大值 有时候我们需要从多个相同的列里(这些列的数据类型相同)找出最大的那个值,并显示 这里给出一个例子 IF (OBJECT_ID('tempdb..##TestTable') IS NOT NULL) DROP TABLE ##TestTable CREATE TABLE ##TestTable ( ID INT IDENTITY(1,1) PRIMARY KEY, Name NVARCHAR(40), UpdateByApp1Date DATE

导出 SQL SERVER 表中数据为脚本

ALTER PROCEDURE [dbo].[Usp_OutputData] @tablename sysname, @outputIdentitycolumn int AS declare @column varchar(3000) declare @columndata varchar(8000) declare @sql varchar(8000) declare @xtype tinyint declare @name sysname declare @objectId int decl

每天进步一点点之SQL 获取表中某个时间字段离当前时间最近的几条

实际中用到的SQL: select * from (select top 3 Id, case when startSignup>GETDATE() then '敬请期待' when (startSignup<GETDATE() and  endsignUp>=getdate()) then '正在报名'  when (StartDate<GETDATE() and EndDate>=GETDATE())or (StartDate<GETDATE() and EndDa

sql将一个表中的数据插入到另一个表中

列名不一定要相同,只要你在HH中列出要插入列的列表跟select   from   mm表中的选择的列的列表一一对应就可以了,当然两边的数据类型应该是兼容的. 比如: insert   into   hh   (fielda,fieldb,fieldc)   select   fieldx,fieldy,fieldz   from   mm ---更新计量点中不存在的数据,将台帐中的信息转移到计量点中 insert into MetricPoints (MeterID,MetricPointNa

SQL将一个表中的某一列值全部插入到另一个表中

1.  SQL将一个表中的某一列值全部插入到另一个表中 插入的话: insert into a(col) select col from b; 更新的话: update a set col=select col from b where a.id=b.id; 判断表是否存在数据库中,存在就删除 if exists (select * from Sysobjects where name='temp') begin drop table temp end

SQL 删除表中重复记录只剩一条

今天不小心插入数据时插入重复了 这表中没有任何主键外键,随便插入或删除 网上查了很多复杂的语句都没有解决问题 最后用delete top (1) 解决问题 delete top (1) from Persion where name = 'xiaomin' 也可以用 update top (1) from person where name ='xxxx' delete from person where name = 'xxxx' 没那么复杂

sql单表中某一字段重复,取最近3条或几条数据

select a.* from tablename a left join tablename b on a.uid=b.uid and a.id>=b.id group by a.id,a.name,a.uid having count(b.id)<=3 order by a.uid,a.id; sql查询语句,针对需求:一个表中某一字段是有重复的数据,针对该字段相同的值只取最近的3条或要求的几条: --记录铭心!

[原创]SQL 把表中某一个列按照逗号拼接成一行

在我们开发的过程中,难免遇到一种场景,把某个表中的的某个列的值拼接成用逗号隔开的一行数据 如图:我们把UserId列拼接成一行数据 -------> 为此我写了一个存储过程来解决此类问题. -- Author:        LHM -- Create date: 2015-01-15 -- Description:    把表中某一个列按照逗号拼接成一行 --示例: EXEC [Sp_TableToString] 'cast([UserId] as varchar)','[X_RoleUser