如有表 A1(CODE,NAME)
数据
CODE Name
0001 A1
0002 A1
0003 A2我有另一个表B1(BCode,BNAME)
数据为:
BCODE BNAME
S1 A1
S2 A1我现在想将A1与B1关联,更新成
A1数据:
CODE NAME
0001 S1
0002 S2
0003 A2
这样形式的。我应该怎么写这个语句,请指教!!!,最好能写的具体点儿。
数据
CODE Name
0001 A1
0002 A1
0003 A2我有另一个表B1(BCode,BNAME)
数据为:
BCODE BNAME
S1 A1
S2 A1我现在想将A1与B1关联,更新成
A1数据:
CODE NAME
0001 S1
0002 S2
0003 A2
这样形式的。我应该怎么写这个语句,请指教!!!,最好能写的具体点儿。
解决方案 »
- 创建JOB时候遇到的问题,以前从未遇到
- 高手们求救,win2003server下安装oracle9i,独占模式,安装完毕后用任何一个用户去连接出错
- Insert 问题
- 如何把lotus的数据导入到Oracle中啊?简单类型的我已经作了,对于RTF域和附件呢?
- 多表查询的问题求教-----急-----
- 100分求助简单问题:Oracle安装时将NTS改为None对Oracle有什么影响?
- 从来没接触过Oracle的提问?
- 请问oracle中,能否用sql语句将long整形的数字,转换成一个date类型。
- 登陆服务器问题!
- Oracle 的存储过程 怎样直接抛出异常提示到界面 (delphi)
- 快照问题请大家帮忙.
- 跪求一句sql,数据库高手请帮忙看看
insert into A1 values('0001','A1');
insert into A1 values('0002','A1');
insert into A1 values('0003','A2');
commit;
create table B1(BCode varchar2(10),BNAME varchar2(10));
insert into B1 values('S1','A1');
insert into B1 values('S2','A1');
commit;update a1 t1 set name=(
select t3.BCODE from
(select code,name,count(name)
over(partition by name order by code,name)
newName from a1) t2,
(select BCode,BNAME,count(Bname)
over(partition by BNAME order by BCode,Bname)
newBName from b1) t3
where t1.CODE=t2.code
and t2.name=t3.bname
and t2.newname=t3.newbname)
where exists(
select 1 from
(select code,name,count(name)
over(partition by name order by code,name)
newName from a1) t2,
(select BCode,BNAME,count(Bname)
over(partition by BNAME order by BCode,Bname)
newBName from b1) t3
where t1.CODE=t2.code
and t2.name=t3.bname
and t2.newname=t3.newbname);COMMIT;SQL> SELECT * FROM A1;CODE NAME
---------- ----------
0001 S1
0002 S2
0003 A2