SQL语句求指导

rabocn 2012-10-08 01:49:35
A表是这样的
nameid
A
B
C
D
E
F

B表是这样的
nameid
F
D
A

现在要的结果是
nameid status
A Y
B N
C N
D Y
E N
F Y

A表中的nameid在表B中的话status为Y,相反为N
A表的数据量小
B表的数据量很大
求一个效率高点的SQL语句


求大神指导
...全文
132 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
vanjayhsu 2012-10-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
SQL code


--A,B两表的nameid都建立索引
select A.nameid,decode(B.nameid,null,'N','Y') status
from A left join B on A.nameid=B.nameid
[/Quote]

OR


select nameid,
case when exists(select 1 from b where a.nameid=b.nameid) then 'Y' else 'N' end status
from A
booth.chen 2012-10-08
  • 打赏
  • 举报
回复
select A.nameid,NVL2(B.nameid,'Y','N') status
from A left join B on A.nameid=B.nameid
陈字文 2012-10-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
SQL code


--A,B两表的nameid都建立索引
select A.nameid,decode(B.nameid,null,'N','Y') status
from A left join B on A.nameid=B.nameid
[/Quote]

++ 差不多了
人生无悔 2012-10-08
  • 打赏
  • 举报
回复

--A,B两表的nameid都建立索引
select A.nameid,decode(B.nameid,null,'N','Y') status
from A left join B on A.nameid=B.nameid

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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