1 1
2 2
3 3
4 5
5 7
6 8
7 9
8 10
9 21
10 22
11 25
12 28
13 29
測驗表是這樣,我要從5開始更新成4,5,6,7,8。。。。。
select no
from (select rownum no
from TEST009 a, TEST009 b
where rownum < (select max(no) from TEST009)
minus
select no from TEST009)
where no > (select min(no) from TEST009)這個sql可以查詢出缺哪些號怎么做可以把測驗表更新成1,2,3,4,5,6,7,8。。。。。
uj5u.com熱心網友回復:
要保持原先的順序把斷號緊炊訓是吧,有個思路不知道適不適合你的實際情況,
按照no排序之后,從1開始把所有行的no列全部重新賦值不就得了,就是更新的資料會更多,(可以判斷一下,有斷號才做)
反正按你說的,出現了斷號的話后面全要更新,看業務情況了,感覺上不差什么,
這樣就很好寫了
uj5u.com熱心網友回復:
直接用本表的rownum更新連續欄位DECLARE
c_ROW T_USER%ROWTYPE;
c_NO VARCHAR2(2);
BEGIN
FOR C_ROW IN (select ROWNUM,ID from T_USER order by ROWNUM ) LOOP
EXECUTE IMMEDIATE 'update SCOTT.T_USER set id =:1WHERE ID=:2'
USING C_ROW.ROWNUM,C_ROW.ID;
END LOOP;
END;
uj5u.com熱心網友回復:
直接根據第一列全部再賦值就可以了吧,用個回圈轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/97822.html
標籤:開發
上一篇:Oracle 大神進
下一篇:歡迎四海八荒的上神來幫忙
