作者kojinchin (退伍了啦...)
看板Database
標題[SQL ] 請問這要怎麼寫成procedure
時間Wed Nov 26 16:03:51 2008
假設現在有個mem的Table,裡面有credit01、credit02兩欄位
我想於每週的固定時間,將02的資料變成01的資料:
如:| 01=10000 | 02=1451 |
在固定時間後會變成 | 01=10000 | 02=10000 |
我目前想法把語法想的比較簡化,直接丟rownum來用也ok。但用成for loop...
for i=1到 max(rownum){
UPDATE mem SET credit02=(SELECT credit02 FROM mem WHERE rownum=[i])
WHERE rownum=[i]
}
請問這要怎麼寫成pl/sql呢?...對for 與下面的變數一整個苦手
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.195.220.18
1F:推 s5846125:前四行還看得懂,但是for{}那段跟前面的需求卻搭不起來 11/26 17:18
sorry。應該是我表達不清。資料庫是Oracle。
max(rownum)的意思是取其count(*)的筆數。雖然我不知道這會不會有問題= =
因為我不想多下一個sql取count。而直接用max(rownum)得出來的等案是與count相同的
如count(*)=max(rownum)=10
然後應其總筆數為1~10
則為for(i=1~10){
上面的update語法[i]
}
就能將所有的筆數都update完。大概是這種意思....
目前是不知該如何將這想法的東西實現。謝謝
※ 編輯: kojinchin 來自: 123.195.220.18 (11/26 18:03)
2F:→ kojinchin:sor。我想錯了。還是需要一條找其count的sql。更正...囧 11/26 22:23
3F:推 wuwaiter:不就是 update mem set credit02=credit01 這樣就好啦? 11/28 03:20
4F:→ kojinchin:是這樣沒錯.後來也發現這樣.不知道那時在想什麼.對不起 11/30 10:22