create table table1
(
gjz varchar(20),
zdz1 varchar(20),
zdz2 varchar(20),
zdz3 varchar(20)
)
insert table1 values(1,'b','c','d')
insert table1 values(2,'e','f','g')
create table table2
(
zd1 varchar(20),
zd2 varchar(20),
zd3 varchar(20)
)
insert table2 values (1,'zdz1','n')
insert table2 values(2,'zdz3','z')
如何把 table1 中字段的值改成 table2中对应的值
如 table1 中 更改后值就变成了(1,n,c,d)(2,e,f,z)
update a
set zdz1 = case when b.zd2 = 'zdz1' then b.zd3 else a.zdz1 end
zdz2 = case when b.zd2 = 'zdz2' then b.zd3 else a.zdz2 end,
zdz3 = case when b.zd2 = 'zdz3' then b.zd3 else a.zdz3 end
from ta1 a ,ta2 b
where a.gjz = b.zd1
没看明白结果
SQL code:
update
a
set
zdz1 = case when b.zd2 = 'zdz1' then b.zd3 else a.zdz1 end
zdz2 = case when b.zd2 = 'zdz2' then b.zd3 else a.zdz2 end,
zdz3 = case when b.zd2 = 'zdz3' then b.zd3 else a.zdz3 end
from
table1 a ,table2 b
where
a.gjz = b.zd1
2楼的是个方法,但是如果table1中有20个这样的值,语句也要这样写?
可能因为工作的原因 接触数据库这块比较少,之前都是做程序这块,数据库这块都有专门的人来做 分工都很明细 所以对数据库这一块完全不了解。前段时间 去面试了几家公司 几乎都是在数据库这块挂掉的 连个简单的SQ ......