作者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