SQL循环

declare @temp Table
(
nf varchar(50),
yf varchar(50),
sm varchar(50)
)
declare @nd varchar(50), @yd int,@i int
set @nd = ‘2016‘
if(@nd = year(getdate()))
begin
set @yd = MONTH(getdate())
end
else
begin
set @yd = 12
end
set @i = 1
WHILE @i <= @yd
BEGIN
insert into @temp
select @nd as nd, @i as yd, count(*) as sm from t_prtc_htbadj
where year(CreateDate)[email protected] and month(CreateDate)[email protected]
set @i = @i + 1
END
select * from @temp

时间: 2024-10-05 10:07:46

SQL循环的相关文章

sql 循环处理表数据中当前行和上一行中某值相+/-

曾经,sql中循环处理当前行数据和上一行数据浪费了我不少时间,学会后才发现如此容易,其实学问就是如此,难者不会,会者不难. 以下事例,使用游标循环表#temptable中数据,然后让当前行和上一行中的argument1 相加 存放到当前行的 argument2 中,比较简单. --drop table #temptable create table #temptable ( argument1 int, argument2 int, argument3 datetime ) declare @r

sql 循环 ,随机数,循环插入一年数据

--循环插入一年的时间 DROP TABLE #temp CREATE TABLE #temp (date DATETIME); DECLARE @year INT SET @year=2019; WITH a1 AS ( SELECT CAST(RTRIM(@year)+'-01-01' AS DATETIME) date UNION ALL SELECT DATEADD(dd,1,date) FROM a1 WHERE DATEPART(yy,DATEADD(dd,1,date))=@yea

SQL 循环语句 while 介绍 实例

declare @i int set @i=1 while @i<30 begin insert into test (userid) values(@i) set @i=@i+1 end --------------- while 条件 begin 执行操作 set @i=@i+1 end --何问起 hovertree.com WHILE设置重复执行 SQL 语句或语句块的条件.只要指定的条件为真,就重复执行语句.可以使用 BREAK 和 CONTINUE 关键字在循环内部控制 WHILE

sql 循环语句几种方式(变量循环,游标循环,事务)

--第一 declare @orderNum varchar(255) create table #ttableName(id int identity(1,1),Orders varchar(255)) declare @n int,@rows int insert #ttableName(orders) select orderNum from FOrders where orderId<50 --select @rows=count(1) from pe_Orders select @ro

Oracle动态游标实现动态SQL循环遍历,和静态游标的比较。

动态游标可以遍历动态的表, 格式: TYPE 游标类型 IS REF CURSOR; --定义一个动态游标游标名 游标类型; 如果查询的表的数据不同的,动态变化的,这时候可以用动态游标. 需要注意的是,动态游标的定义, 在普通存储过程中:需要放在 is 后面的第一行. 动态游标通过:open 游标 for 字符串,形式使用,遍历. create or replace procedure P_TEST_SQL is TYPE ref_cursor_type IS REF CURSOR; --定义一

sql循环遍历

<sql id="Example_Where_Clause" > <!-- WARNING - @mbggenerated This element is automatically generated by MyBatis Generator, do not modify. This element was generated on Mon Jan 18 10:58:08 CST 2016. --> <where > <foreach col

SQL 循环30日

循环30日的统计 大概格式是 with Date as ( select cast(DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) as datetime) Date union all select Date+1 from Date where Date+1 < CONVERT(CHAR(10),DATEADD(m,1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111) ) select day(a.Date) as d

sql 循环表中记录

=========================================================================循环排序查询数据============================================================= 这个写的是个函数,以便存储过程中调用!USE [数据库名称]GO/****** Object: UserDefinedFunction [dbo].[GetServer] Script Date: 05/22/20

2017-09-21xlVBA_蒸发SQL循环查询1

'ARRAY("1991","1992","1993","1994","1996","1997","1998","1999","2001") Sub ADO_SQL_QUERY_ONE_RNG() '应用程序设置 Application.ScreenUpdating = False Application.DisplayAler

SQL循环添加表中的字段

USE BookDiscuss DECLARE @num INT DECLARE @numdiff INT DECLARE @table  VARCHAR(50) DECLARE @sql VARCHAR(8000) SET @numdiff=3 SET @num=0 WHILE @num<@numdiff BEGIN SET @table='DiscussPost_'+CAST(@num AS VARCHAR(10)); SET    @sql= 'ALTER TABLE '[email pr