oracle 从一个结果集循环排除另一个表中的内容,后做判断

mkhsj 2016-06-04 12:01:41
表: table_a(a ,b ,c ,d) table_b(b ,f ,g ,h)
从table_a 表select 出 b 字段内容 ,并且通过a字段排序 取 前5行(升序),

然后 循环这5行的b内容。 select * from table_b t where t.b not in(b1) ,【通过去除table_b表中的b1后,比如:查询出来的g 减去 没有 排除时的 g 结果>10,则退出,否则继续循环 】,继续循环下一条的 b内容, 然后即:
select * from table_b t where t.b not in(b1,b2) ,如果都不满足,,就是 select * from table_b t where t.b not in(b1,b2,b3,b4,b5);

求教啊。。。
...全文
978 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mkhsj 2016-06-04
  • 打赏
  • 举报
回复
select a from table_b y b where y.b not in (p.b1) 这里 表后面的别名 多写了个 b , 应该是: select a from table_b y where y.b not in (p.b1)
mkhsj 2016-06-04
  • 打赏
  • 举报
回复
没有,需求就这 我描述的 那样的。 table_b 表中 b的内容 循环 排除掉 table_a 中 b的内容(这里的b的内容 按升序),比如: 第一次, select p.b from (select b from table_a order by b) p where rownum <6;--取通过b 排序后的 前5行数据 select a from table_b y b where y.b not in (p.b1) --第一次循环上面的结果 取得的 p.b1 用 这个 a 减去 【select a from table_b y b 】 这里的a 的 结果> 6 则不在循环,否则继续循环, ru: select a from table_b y b where y.b not in (p.b1,p.b2); --这一次 要从 table_b 表中 排除 table_a 表中 第一个和第二个 的b。
卖水果的net 2016-06-04
  • 打赏
  • 举报
回复
有示例数据和你想的结果吗 ?简单的列一下;

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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