求一逻辑简单实现困难的sql

LifeForCode 2007-11-13 02:18:01
A B 两表结构雷同
如何实现,A表无符合要求的数据则从B表读取
不要PL_Sql哦
实现加分..
...全文
155 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
jianyunpeng 2007-11-14
  • 打赏
  • 举报
回复
哦,少打了一个not 应该是not exists
雨男Mohican 2007-11-14
  • 打赏
  • 举报
回复
Mark!

jianyunpeng的思路很清晰
LifeForCode 2007-11-14
  • 打赏
  • 举报
回复
CSDN新版需求分析师疯了,不到5天不能加分结贴
LifeForCode 2007-11-14
  • 打赏
  • 举报
回复
sorry,刚看到jianyunpeng 回帖,测试ok
LifeForCode 2007-11-14
  • 打赏
  • 举报
回复
嗯..经测试,jianyunpeng 的sql有情况获得总是A表数据
bai_jiong 的没发现问题
思路都够厉害的
佩服一下先
bai_jiong 2007-11-13
  • 打赏
  • 举报
回复
4楼,你可用如下的数据调试一下你的SQL语句,好像有点不正确哦

设B表数据如下:
BOOK_ID BOOK_NAME
---------- ----------
1 AA
2 BB
3 CC
4 DD
5 BE

设A表数据如下:

BOOK_ID BOOK_NAME
---------- ----------
5 BE
4 AE



jianyunpeng 2007-11-13
  • 打赏
  • 举报
回复
哦,慢了一步,呵呵。3楼的跟我的差不多.
jianyunpeng 2007-11-13
  • 打赏
  • 举报
回复

select colume_name from B
where exists (
select colume_name from A where A表条件 ) and B表条件
union select colume_name from A where A表条件

前提是从A表和B表里去的colume要数据类型一致,还有就是列数一致.
试验过了,应该满足要求,不过效率方面就没考虑了.提供参考而已,不一定对!呵呵.
bai_jiong 2007-11-13
  • 打赏
  • 举报
回复
试一下这个SQL语句,

SELECT * FROM A WHERE A_ID='3'
UNION
SELECT * FROM B WHERE B_ID='3' AND
NOT EXISTS
(SELECT 1 FROM A WHERE A_ID='3')


WHERE后面的条件可以自己设置,只要一致就可以
LifeForCode 2007-11-13
  • 打赏
  • 举报
回复
是的。
有点bt吧,不需要按照我提供的逻辑写,只要结果一样就行
jianyunpeng 2007-11-13
  • 打赏
  • 举报
回复
不写存储过程,纯sql???

17,140

社区成员

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

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