update a a1
set name = ( select name from b where a.id=b.id)
where rowid = ( select min(rowid) from a a2 where a2.id=a1.id);
set name = ( select name from b where a.id=b.id)
where rowid = ( select min(rowid) from a a2 where a2.id=a1.id);
解决方案 »
- 一个莫名奇妙的问题,字段有时自动更新
- 请问这两条语句实现的功能是一样的吗
- 关于sqldeveloper 连接oracle出现ora12505的奇怪问题
- 字段数值是一个表达式oracle 9i 能动态编译吗 ,高手请进
- oracle数据库导出导入后出现很多小红叉,比方说存储过程,进入之后空格然后编译无问题
- 使用全局临时表导致sql insert执行很慢,求高人指点~~~
- 请教一个sql
- 如何创建表空间?????给100分
- 怎么找到oo4ocodewiz.exe???--急
- 在NLS_LANG=WE8ISO8859P1,数据库字符集为UTF16的环境下用Oralce OLEDB操作汉字的朋友吗?
- 关于Pro C&Pro C++
- 如何创建一个非空的自动加一的字段(在线等待,解决即结贴)
where rowid in ( select min(rowid) from a group by id );
该语句有两个运行前提:
1. b的id为唯一健或主键
2. b的id取值范围要比a大,即a的id字段以b的id字段为外键。如果上述均条件不成立,则可以试试下述语句:
update a set name = ( select max(name) from b where a.id = b.id )
where rowid in ( select min(rowid) from a where a.id in ( select distinct id from b ) group by id;如果你只是想a的将address更新到name,那么可以写为:
update a set name = address
where rowid in ( select min(rowid) from a where a.id in ( select distinct id from b ) group by id;