背景傳入變量a
update from table set columnB=a where columnB==""
order by columnA
循環操作這條sql,a從0開始 ######問問題都不能描述清楚 就别指望有人回答了######回複
@布爾道長 : +1######“這樣規律的資料怎樣用sql更新 “更新成什麼? ”為空的columnB列,其中A列可能會有N條資料是一樣的,但B列必須是從0開始遞增 ”這是在說什麼?######那麼清析的表結構都了解不了?######
引用來自“譚書記”的答案
背景傳入變量a
update from table set columnB=a where columnB==""
order by columnA
循環操作這條sql,a從0開始
背景如何傳入變量a?
######回複
@kylerho : oracle中可以用序列來實作你的自動增長。你自己試下,我提供一份簡碼: CREATE SEQUENCE my_seq START WITH 1 INCREMENT BY 1 MAXVALUE 100 ; (表示建立序列,從0開始,每次+1,最大值100) 然後調用我上面的sql,把a換成my_seq.nextval######回複
@譚書記 : 存儲過程不太熟,試過用遊标,寫的有點不太正确######回複
@kylerho : 那就寫個簡單的存儲過程吧,呵呵。還是變量一說。######回複
@譚書記 : 呵呵~~ 如果是程式操作的,我就不用在這問了,那是要在oracle中操作的######哦,我這可能是mybatis的思想。。oracle不知道适用不,看你使用的是什麼orm架構,呵呵。。那你把a用oracle中的特殊函數替代下,比如自動增長的函數(不知道有木有)######使用視窗函數就OK######select columna, row_number() over(partition by columna order by columna) - 1 columnb from t######回複
@kylerho : 修改了######回複
@kylerho : 暈,外面再嵌套一層減一會不######這個能從0開始的嗎?######或者直接######在别名前減一就可以了######已經解決了,就在别名前減一,謝了