有时候需要在SQL中对查询结果循环,下面是一个使用游标的示例:

 

  1SQL存储过程中使用游标对查询结果循环set ANSI_NULLS ON
  2SQL存储过程中使用游标对查询结果循环
  3SQL存储过程中使用游标对查询结果循环set QUOTED_IDENTIFIER ON
  4SQL存储过程中使用游标对查询结果循环
  5SQL存储过程中使用游标对查询结果循环GO
  6SQL存储过程中使用游标对查询结果循环
  7SQL存储过程中使用游标对查询结果循环ALTER PROCEDURE [dbo].[GetProductPriceFromYear] 
  8SQL存储过程中使用游标对查询结果循环
  9SQL存储过程中使用游标对查询结果循环       @ProductID int,
 10SQL存储过程中使用游标对查询结果循环
 11SQL存储过程中使用游标对查询结果循环       @Date Datetime
 12SQL存储过程中使用游标对查询结果循环
 13SQL存储过程中使用游标对查询结果循环AS
 14SQL存储过程中使用游标对查询结果循环
 15SQL存储过程中使用游标对查询结果循环BEGIN
 16SQL存储过程中使用游标对查询结果循环
 17SQL存储过程中使用游标对查询结果循环       create table #temp1
 18SQL存储过程中使用游标对查询结果循环
 19SQL存储过程中使用游标对查询结果循环(
 20SQL存储过程中使用游标对查询结果循环
 21SQL存储过程中使用游标对查询结果循环       id int IDENTITY(1,1NOT NULL primary key,
 22SQL存储过程中使用游标对查询结果循环
 23SQL存储过程中使用游标对查询结果循环       AddDate varchar(20),
 24SQL存储过程中使用游标对查询结果循环
 25SQL存储过程中使用游标对查询结果循环       [datename] varchar(20),
 26SQL存储过程中使用游标对查询结果循环
 27SQL存储过程中使用游标对查询结果循环       week varchar(20),
 28SQL存储过程中使用游标对查询结果循环
 29SQL存储过程中使用游标对查询结果循环       ProductName varchar(20),
 30SQL存储过程中使用游标对查询结果循环
 31SQL存储过程中使用游标对查询结果循环       ProductID varchar(20),
 32SQL存储过程中使用游标对查询结果循环
 33SQL存储过程中使用游标对查询结果循环       LPrice float(20),
 34SQL存储过程中使用游标对查询结果循环
 35SQL存储过程中使用游标对查询结果循环       HPrice float(20),
 36SQL存储过程中使用游标对查询结果循环
 37SQL存储过程中使用游标对查询结果循环       APrice float(20),
 38SQL存储过程中使用游标对查询结果循环
 39SQL存储过程中使用游标对查询结果循环       WeekLPrice float(20),
 40SQL存储过程中使用游标对查询结果循环
 41SQL存储过程中使用游标对查询结果循环       WeekHPrice float(20),
 42SQL存储过程中使用游标对查询结果循环
 43SQL存储过程中使用游标对查询结果循环       WeekAPrice float(20),
 44SQL存储过程中使用游标对查询结果循环
 45SQL存储过程中使用游标对查询结果循环       WeekDayCount int
 46SQL存储过程中使用游标对查询结果循环
 47SQL存储过程中使用游标对查询结果循环)
 48SQL存储过程中使用游标对查询结果循环
 49SQL存储过程中使用游标对查询结果循环 
 50SQL存储过程中使用游标对查询结果循环
 51SQL存储过程中使用游标对查询结果循环declare @tempDate varchar(20)
 52SQL存储过程中使用游标对查询结果循环
 53SQL存储过程中使用游标对查询结果循环declare @AddDate varchar(20)
 54SQL存储过程中使用游标对查询结果循环
 55SQL存储过程中使用游标对查询结果循环declare @datenam varchar(20)
 56SQL存储过程中使用游标对查询结果循环
 57SQL存储过程中使用游标对查询结果循环declare @week varchar(20)
 58SQL存储过程中使用游标对查询结果循环
 59SQL存储过程中使用游标对查询结果循环declare @ProductName varchar(20)
 60SQL存储过程中使用游标对查询结果循环
 61SQL存储过程中使用游标对查询结果循环declare @Product varchar(20)
 62SQL存储过程中使用游标对查询结果循环
 63SQL存储过程中使用游标对查询结果循环declare @LPrice varchar(20)
 64SQL存储过程中使用游标对查询结果循环
 65SQL存储过程中使用游标对查询结果循环declare @HPrice varchar(20)
 66SQL存储过程中使用游标对查询结果循环
 67SQL存储过程中使用游标对查询结果循环declare @APrice varchar(20)
 68SQL存储过程中使用游标对查询结果循环
 69SQL存储过程中使用游标对查询结果循环Declare   CurPrice   Cursor   For 
 70SQL存储过程中使用游标对查询结果循环
 71SQL存储过程中使用游标对查询结果循环              select distinct AddDate=CONVERT(char(10),a.AddDate,20),datename(dw,a.AddDate) as [datename],
 72SQL存储过程中使用游标对查询结果循环
 73SQL存储过程中使用游标对查询结果循环datepart(ww,a.AddDate) as week, b.ProductName,a.ProductID,a.LPrice,a.HPrice,a.APrice 
 74SQL存储过程中使用游标对查询结果循环
 75SQL存储过程中使用游标对查询结果循环from dbo.SmsPrice as a join dbo.SmsProduct as b 
 76SQL存储过程中使用游标对查询结果循环
 77SQL存储过程中使用游标对查询结果循环on a.ProductID = b.ProductId where a.ProductID = @ProductID AND Datediff(yy,a.AddDate,@Date)=0 order by AddDate desc
 78SQL存储过程中使用游标对查询结果循环
 79SQL存储过程中使用游标对查询结果循环Open   CurPrice     
 80SQL存储过程中使用游标对查询结果循环
 81SQL存储过程中使用游标对查询结果循环Fetch  from CurPrice into @AddDate,@datenam,@week,@ProductName,@Product,@LPrice,@HPrice,@APrice
 82SQL存储过程中使用游标对查询结果循环
 83SQL存储过程中使用游标对查询结果循环insert into #temp1(AddDate,[datename],week,ProductName,ProductID,LPrice,HPrice,APrice)
 84SQL存储过程中使用游标对查询结果循环
 85SQL存储过程中使用游标对查询结果循环                     values(@AddDate,@datenam,@week,@ProductName,@Product,@LPrice,@HPrice,@APrice)
 86SQL存储过程中使用游标对查询结果循环
 87SQL存储过程中使用游标对查询结果循环 
 88SQL存储过程中使用游标对查询结果循环
 89SQL存储过程中使用游标对查询结果循环While   @@FETCH_STATUS=0   
 90SQL存储过程中使用游标对查询结果循环
 91SQL存储过程中使用游标对查询结果循环    BEGIN
 92SQL存储过程中使用游标对查询结果循环
 93SQL存储过程中使用游标对查询结果循环              
 94SQL存储过程中使用游标对查询结果循环
 95SQL存储过程中使用游标对查询结果循环              if(@tempDate!=@AddDate)
 96SQL存储过程中使用游标对查询结果循环
 97SQL存储过程中使用游标对查询结果循环                     insert into #temp1(AddDate,[datename],week,ProductName,ProductID,LPrice,HPrice,APrice)
 98SQL存储过程中使用游标对查询结果循环
 99SQL存储过程中使用游标对查询结果循环                     values(@AddDate,@datenam,@week,@ProductName,@Product,@LPrice,@HPrice,@APrice)
100SQL存储过程中使用游标对查询结果循环
101SQL存储过程中使用游标对查询结果循环              set @tempDate = @AddDate
102SQL存储过程中使用游标对查询结果循环
103SQL存储过程中使用游标对查询结果循环              Fetch  from CurPrice into @AddDate,@datenam,@week,@ProductName,@Product,@LPrice,@HPrice,@APrice
104SQL存储过程中使用游标对查询结果循环
105SQL存储过程中使用游标对查询结果循环       end
106SQL存储过程中使用游标对查询结果循环
107SQL存储过程中使用游标对查询结果循环  Close   CurPrice
108SQL存储过程中使用游标对查询结果循环
109SQL存储过程中使用游标对查询结果循环  Deallocate   CurPrice
110SQL存储过程中使用游标对查询结果循环
111SQL存储过程中使用游标对查询结果循环 
112SQL存储过程中使用游标对查询结果循环
113SQL存储过程中使用游标对查询结果循环--insert into #temp1(AddDate,[datename],week,ProductName,ProductID,LPrice,HPrice,APrice) 
114SQL存储过程中使用游标对查询结果循环
115SQL存储过程中使用游标对查询结果循环--select distinct AddDate=CONVERT(char(10),a.AddDate,20),datename(dw,a.AddDate) as [datename],
116SQL存储过程中使用游标对查询结果循环
117SQL存储过程中使用游标对查询结果循环--datepart(ww,a.AddDate) as week, b.ProductName,a.ProductID,a.LPrice,a.HPrice,a.APrice 
118SQL存储过程中使用游标对查询结果循环
119SQL存储过程中使用游标对查询结果循环--from dbo.Price as a join dbo.SmsProduct as b 
120SQL存储过程中使用游标对查询结果循环
121SQL存储过程中使用游标对查询结果循环--on a.ProductID = b.ProductId where a.ProductID = @ProductID AND Datediff(yy,a.AddDate,@Date)=0 order by AddDate desc
122SQL存储过程中使用游标对查询结果循环
123SQL存储过程中使用游标对查询结果循环declare @weekid varchar(20)
124SQL存储过程中使用游标对查询结果循环
125SQL存储过程中使用游标对查询结果循环declare @tempWeek2 varchar(20)
126SQL存储过程中使用游标对查询结果循环
127SQL存储过程中使用游标对查询结果循环declare @WeekLPrice float(20)
128SQL存储过程中使用游标对查询结果循环
129SQL存储过程中使用游标对查询结果循环declare @WeekHPrice float(20)
130SQL存储过程中使用游标对查询结果循环
131SQL存储过程中使用游标对查询结果循环declare @WeekAPrice float(20)
132SQL存储过程中使用游标对查询结果循环
133SQL存储过程中使用游标对查询结果循环 
134SQL存储过程中使用游标对查询结果循环
135SQL存储过程中使用游标对查询结果循环Declare   Cur   Cursor   For 
136SQL存储过程中使用游标对查询结果循环
137SQL存储过程中使用游标对查询结果循环              select distinct week from #temp1
138SQL存储过程中使用游标对查询结果循环
139SQL存储过程中使用游标对查询结果循环Open   Cur     
140SQL存储过程中使用游标对查询结果循环
141SQL存储过程中使用游标对查询结果循环  Fetch   Cur   Into   @weekid
142SQL存储过程中使用游标对查询结果循环
143SQL存储过程中使用游标对查询结果循环While   @@FETCH_STATUS=0   
144SQL存储过程中使用游标对查询结果循环
145SQL存储过程中使用游标对查询结果循环        BEGIN 
146SQL存储过程中使用游标对查询结果循环
147SQL存储过程中使用游标对查询结果循环                     select @tempWeek2=week,@WeekLPrice=avg(CONVERT(float,LPrice)),@WeekHPrice=avg(CONVERT(float,HPrice)),
148SQL存储过程中使用游标对查询结果循环
149SQL存储过程中使用游标对查询结果循环                            @WeekAPrice=avg(CONVERT(float,APrice)) from #temp1 where week =@weekid group by week
150SQL存储过程中使用游标对查询结果循环
151SQL存储过程中使用游标对查询结果循环                     update #temp1 set WeekLPrice = @WeekLPrice,WeekHPrice=@WeekHPrice,WeekAPrice=@WeekAPrice,
152SQL存储过程中使用游标对查询结果循环
153SQL存储过程中使用游标对查询结果循环                            WeekDayCount=(select count(*from #temp1 where week = @weekidwhere week = @weekid
154SQL存储过程中使用游标对查询结果循环
155SQL存储过程中使用游标对查询结果循环                     Fetch   Cur   Into   @weekid 
156SQL存储过程中使用游标对查询结果循环
157SQL存储过程中使用游标对查询结果循环              end
158SQL存储过程中使用游标对查询结果循环
159SQL存储过程中使用游标对查询结果循环  Close   Cur   
160SQL存储过程中使用游标对查询结果循环
161SQL存储过程中使用游标对查询结果循环  Deallocate   cur
162SQL存储过程中使用游标对查询结果循环
163SQL存储过程中使用游标对查询结果循环select * from #temp1
164SQL存储过程中使用游标对查询结果循环
165SQL存储过程中使用游标对查询结果循环END
166SQL存储过程中使用游标对查询结果循环

相关文章: