本人菜鳥從SQL SERVER剛轉oracle學習,以前sql的update陳述句
UPDATE 表 SET A=@k,@k=@k+1 WHERE B=@j
在Oracle上怎么寫k=k+1?
----k和j是變數,加了",k=k+1"這一句就報錯
UPDATE 表 SET A=k,k=k+1 WHERE B=j

求助大家!
uj5u.com熱心網友回復:
update 表 set a=:1+1 where b=:2 using k ,juj5u.com熱心網友回復:
樓主把陳述句寫完整一些。uj5u.com熱心網友回復:
以前老系統用的是SQL SERVER資料庫,現在新系統用的是ORACLE資料庫。老系統的代碼如下
Select @i=max(LEVELS),@j=1,@k=0 From @t
While @j<=@i
Begin
Update @t Set IID=@k,@k=@k+1 Where LEVELS=@j
Select @j=@j+1
End
現在想搬到oracle資料庫來,不會寫了
uj5u.com熱心網友回復:
搞了半天也不知道怎么個寫法,用加了個回圈的笨辦法解決了,求大神指導下有沒有更好的辦法select max(lvl) into i from t_gt_bomdetail;
while j<=i loop
select count(xh) into k from t_gt_bomdetail where lvl=j;
while k>0 loop
update t_gt_bomdetail set iid=l where lvl=j and xh=(select min(xh) from t_gt_bomdetail where lvl=j and iid=0);
k:=k-1;
l:=l+1;
end loop;
j:=j+1;
end loop;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/228091.html
標籤:基礎和管理
上一篇:最近優化公司專案代碼的一些心得
下一篇:求助求助
