使用游標瀏覽查詢結果

2022-07-11 16:18:15 字數 901 閱讀 9100

create definer=`root`@`localhost` procedure `fetchdemo`()

begin

declare is1,ic1,isc1,ic2,isc2 int;

declare done int default 0;

declare cur1 cursor for select a.s1,a.c1,a.score,b.c1 ,b.score from sc a join (select * from sc where c1=02) b on a.s1=b.s1 and a.score>b.score where a.c1=01;

declare continue handler for sqlstate '02000' set done = 1;   //必須先定義游標,後定義handler

open cur1;

fetch cur1 into is1,ic1,isc1,ic2,isc2 ;   

//先fetch一次,在列印。否則先列印,會導致最後乙個記錄列印兩次。

repeat

select is1;

fetch cur1 into is1,ic1,isc1,ic2,isc2 ;

until done end repeat;

close cur1;

end失敗的例子在下面:

repeat

fetch cur1 into is1,ic1,isc1,ic2,isc2 ;//這是失敗的例子,因為先fetch,如果查詢失敗,則還要執行下面的select 語句,會導致最後一條查詢記錄被執行兩次。

select is1;

until done end repeat;

close cur1;

end//ps:昨日喝酒,未日更。遺憾啊,第一天就這樣。

使用游標 引數游標

參游標是指帶有引數的游標。在定義了引數游標之後,當使用不同引數值多次開啟游標時,可以生成不同的結果集。定義引數游標的語法如下 cursor cursor name parameter name datetype is select statement 注意,當定義引數游標時,游標引數只能指定資料型別...

使用游標 游標FOR迴圈

游標for迴圈是在pl sql塊中使用游標最簡單的方式,它簡化了對游標的處理。當使用游標for迴圈時,oracle會隱含的開啟游標,提取游標資料並關閉游標。例子 顯示emp表所有雇員名及其工資 declare cursor emp cursor isselect ename,sal from emp...

MYSQL使用游標

一 使用游標 一 宣告游標。delare cursor name cursor for select statement 解釋 cursor name是游標的名字 select statement表示select語句。因為游標需要遍歷結果集的每一行,增加了伺服器的負擔,導致游標的效率並不高效,如果使...