各位老師好,請教一個問題。
我用ORACLE 游標中,需要一次執行中,取下一條資料的date值,與當前這行的date值。請問要怎么寫啊???
我設定了一個變數bc_date1,寫兩個FETCH,這樣可以取到下一條資料的值,但是游標執行程序中,會調著執行。。
DECLARE CURSOR cur_bl IS
select to_char(bc_date,'yyyy-mm-dd hh24:mi')as bc_date,bl_no_bc as bc_date
from ysh_record
where inpatient_no=row_cur_patient.inpatient_no and
admiss_times=row_cur_patient.admiss_times and
bl_no =row_cur_patient.bl_no
order by bc_date asc ;
row_cur_bl cur_bl%ROWTYPE;
begin
open cur_bl;
loop
FETCH cur_bl INTO row_cur_bl;
EXIT WHEN cur_bl%NOTFOUND OR cur_bl%NOTFOUND IS NULL;
bc_date1:=row_cur_bl.bc_date;
bl_no_bc1:=row_cur_bl.bl_no_bc;
FETCH cur_bl INTO row_cur_bl;
EXIT WHEN cur_bl%NOTFOUND OR cur_bl%NOTFOUND IS NULL;
if cur_bl%rowcount=0 then
bc_date1:='0000';
end if;
if bl_text IS NOT NULL then
text_pos1:=instr(bl_text,row_cur_bl.bc_date);
text_pos2:=instr(bl_text,bc_date1) ;
end if;
uj5u.com熱心網友回復:
了解一下lag和lead這兩個函式uj5u.com熱心網友回復:
1、用樓上的偏移函式lag,lead處理;2、將游標的結果集反序排,在遍歷的時候記住上一條資料就行。 即上一條和當期條就是你原來順序的當前條和下一條
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/22910.html
標籤:非技術區
上一篇:linux 安裝 Redis
下一篇:截取字串 求助大神~!
