我现在有一张如下的表:
ID ID2 ID3 Val CREATEDATE
5 1 2 0.05000000 2010-5-12 20:17:45
6 2 2 0.50000000 2010-5-12 20:17:45
7 3 2 0.41000000 2010-5-12 20:17:45
8 4 2 0.04000000 2010-5-12 20:17:45
9 1 3 0.00000000 2010-5-12 20:19:28
10 2 3 0.40000000 2010-5-12 20:19:28
11 3 3 0.56000000 2010-5-12 20:19:28
12 4 3 0.04000000 2010-5-12 20:19:28
13 1 4 0.00000000 2010-5-12 20:43:59
14 2 4 0.22500000 2010-5-12 20:44:00
15 3 4 0.72500000 2010-5-12 20:44:00
16 4 4 0.05000000 2010-5-12 20:44:00
17 1 5 0.00000000 2010-5-12 20:44:00
18 2 5 0.10000000 2010-5-12 20:44:00
19 3 5 0.85000000 2010-5-12 20:44:00
20 4 5 0.05000000 2010-5-12 20:44:00
1 1 1 0.15000000 2010-5-12 20:13:27
2 2 1 0.57500000 2010-5-12 20:15:26
3 3 1 0.27500000 2010-5-12 20:15:26
4 4 1 0.00000000 2010-5-12 20:15:26
我想在一次提交中同时Update id3=1 and id2=1的val=2,id3=1 and id2=2的val=8,id3=1 and id2=3的val=3,id3=1 and id2=4的val=4,要如何实现啊???
ID ID2 ID3 Val CREATEDATE
5 1 2 0.05000000 2010-5-12 20:17:45
6 2 2 0.50000000 2010-5-12 20:17:45
7 3 2 0.41000000 2010-5-12 20:17:45
8 4 2 0.04000000 2010-5-12 20:17:45
9 1 3 0.00000000 2010-5-12 20:19:28
10 2 3 0.40000000 2010-5-12 20:19:28
11 3 3 0.56000000 2010-5-12 20:19:28
12 4 3 0.04000000 2010-5-12 20:19:28
13 1 4 0.00000000 2010-5-12 20:43:59
14 2 4 0.22500000 2010-5-12 20:44:00
15 3 4 0.72500000 2010-5-12 20:44:00
16 4 4 0.05000000 2010-5-12 20:44:00
17 1 5 0.00000000 2010-5-12 20:44:00
18 2 5 0.10000000 2010-5-12 20:44:00
19 3 5 0.85000000 2010-5-12 20:44:00
20 4 5 0.05000000 2010-5-12 20:44:00
1 1 1 0.15000000 2010-5-12 20:13:27
2 2 1 0.57500000 2010-5-12 20:15:26
3 3 1 0.27500000 2010-5-12 20:15:26
4 4 1 0.00000000 2010-5-12 20:15:26
我想在一次提交中同时Update id3=1 and id2=1的val=2,id3=1 and id2=2的val=8,id3=1 and id2=3的val=3,id3=1 and id2=4的val=4,要如何实现啊???
解决方案 »
- 两表更新,一对一匹配,oracle不给更新。
- 关于oracle包失效问题
- 自动建立表空间,比如每到一个月的开始,就自动建立一个以时间命名的表空间
- STAR_TRANSFORMATION_ENABLED如何设置
- oracle的存储过程中判断表是否在,在的话insert否则creat(在线等)
- 关于大数据量的插入性能问题
- oracle中如何判断字段为空??
- 我装的oracle为什么登陆不了
- 我用表b中的c_csrq(date型,“1949-10-19”),更新另一个表a中的dcsrq(date型),变成了“2049-10-19”。
- SQL命令未正确结束
- 求助触发器
- PL/SQL Developer工具的问题
SET t.val = (CASE
WHEN id3 = 1 AND id2 = 1 THEN
2
WHEN id3 = 1 AND id2 = 2 THEN
8
WHEN id3 = 1 AND id2 = 3 THEN
3
WHEN id3 = 1 AND id2 = 4 THEN
4
ELSE
val
END);
id3=1 and id2=1 -> val=2
id3=1 and id2=2 -> val=8
id3=1 and id2=3 -> val=3
id3=1 and id2=4 -> val=4
可见id3都等于1,而id2在1~4,则可以根据id2值的不同来给val赋值update t set val=decode(id2,1,2,2,8,3,3,4,4,0) where id3=1 and id2 in(1,2,3,4);
试试自己写个文件xxx.sql 如下
update table t set t.id1 = 2 where val=2;
update table t set t.id1 = 2 where val=2;
update table t set t.id1 = 2 where val=2;
update table t set t.id1 = 2 where val=2;
commit;
这样批量执行sql语句