sql中迴圈處理當前行資料和上一行資料相加減

2022-09-29 13:27:13 字數 1450 閱讀 8300

以下事例,使用游標迴圈表#temptable中資料,然後讓當前行和上一行中的argument1 相加 存放到當前行的 argument2 中,比較簡單。

--drop table #temptable

create table #temptable

( argument1 int,

argument2 int,

argument3 datetime

)declare @rowcount int,@argument1 int,@argument2 nvarchar(50),@argument3 datetime

set @rowcount=1

set @argument1=1

set @argument2=0

set @argument3=getdate()

while(@rowcount<100)

begin

insert into #temptable(argument1,argument2,argument3)

values(@argument1,@argument2,@argument3)

set @agebjkargument1=@argument1 + datepart(day,@argument3)

set @argument3=@argument3-1

set @rowcount = @rowcount + 1

end--select * from #temptable

declare @lastargument2 int

set @lastargument2=0

set @argument2=0

declare _cursor cursor for(select argument1 from #temptable)

open _cu程式設計客棧rsor;

fetch next from _cursor into @argument2

while @@fetch_status = 0

begin

update #temptable

程式設計客棧 set argument2=@argument2+@lastargument2

where current of _cursor

set @lastargument2=@argument2

fetch next from _cursor into @argument2

endclose _cursor

deallocate _cursor

--select * fro程式設計客棧m #temptable

問乙個問題:

第一句fetch next from _cursor into @argument2 這句為什麼不能放在while迴圈的第一行,刪除第二行呢?我記得自己當時在這裡出錯了,呵呵。

本文位址: /shujuku/mssql/112047.html

在檔案中列印當前檔案資訊和當前行數,供除錯

c99就支援可變引數巨集 define dbgprint format,args.fprintf stderr,format,args define dgbmsg fmt,printf fmt,va args 都是正確的,當然前提是要使用支援c99的編譯器 比如gcc 以下是2種debug寫法,並列...

SQL查詢當前資料上一條和下一條的記錄

id是指當前資料news id引數 方法一 string presql select top 1 from news where news id id order by news id desc string nextsql select top 1 from news where news id ...

SQL 各種資料庫中檢視當前庫中所有表和字段資訊

各種資料庫中檢視當前庫中所有表和字段資訊 2012 02 12 16 19 mysql 1 檢視所有表名 show tables from db name 2 檢視字段資訊 show full columns from db name.table name 獲取以下資訊 field 欄位名 type...