从表2中取查出的第二条记录更新表1字段

乾K大挪移 2013-04-24 08:34:26

-- 表1.BBB与表2.CCC为关联字段,根据关联字段从表2查出N条记录,取第二条记录Update表1.AAA字段
-- 此SQL运行至where b.CCC = 表1.BBB 报错,无法识别表1.BBB。
update 表1
set 表1.AAA =
(select b2.DDD
from (select b.*, rownum as brn
from 表2 b
where b.CCC = 表1.BBB
and rownum < 3) b2
where b2.brn > 1);

怎么实现?
多谢!
...全文
168 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
乾K大挪移 2013-05-07
  • 打赏
  • 举报
回复
后来我使用了存储过程解决这一问题
u010412956 2013-04-24
  • 打赏
  • 举报
回复
merge into 表1 t1 using (select ccc, ddd from (select ccc, ddd, rownum rn from 表2 where rownum < 3) where rn > 1) t2 on (t1.bbb = t2.ccc) when matched then update set t1.aaa = t2.ddd;
陈字文 2013-04-24
  • 打赏
  • 举报
回复
引用 楼主 bkinside 的回复:
SQL code?12345678910-- 表1.BBB与表2.CCC为关联字段,根据关联字段从表2查出N条记录,取第二条记录Update表1.AAA字段-- 此SQL运行至where b.CCC = 表1.BBB 报错,无法识别表1.BBB。update 表1 set 表1.AAA = (select b2.DDD from (se……
没有看明白你 rownum < 3 的逻辑是什么..为什么呢?
ben20062143 2013-04-24
  • 打赏
  • 举报
回复
merge可以
陈字文 2013-04-24
  • 打赏
  • 举报
回复
引用 3 楼 bkinside 的回复:
引用 1 楼 ziwen00 的回复:引用 楼主 bkinside 的回复:SQL code?12345678910-- 表1.BBB与表2.CCC为关联字段,根据关联字段从表2查出N条记录,取第二条记录Update表1.AAA字段-- 此SQL运行至where b.CCC = 表1.BBB 报错,无法识别表1.BBB。update 表1 set 表1.AAA = ……
恩,使用merge也是一个好的方法.
乾K大挪移 2013-04-24
  • 打赏
  • 举报
回复
引用 1 楼 ziwen00 的回复:
引用 楼主 bkinside 的回复:SQL code?12345678910-- 表1.BBB与表2.CCC为关联字段,根据关联字段从表2查出N条记录,取第二条记录Update表1.AAA字段-- 此SQL运行至where b.CCC = 表1.BBB 报错,无法识别表1.BBB。update 表1 set 表1.AAA = (select b2.DD……
为了取查询出来的第二条数据,用的是rownum>1 然后再 rownum<3

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧