求一SQL语句(ORACLE中)

lzy6204 2012-09-10 10:50:45
数据集A
Code Name
1 A1
2 A2

数据集B
Code Name
1 B1
1 B2
3 B3

显示结果

Code Name1 Name2
1 A1 B1
1 B2
2 A2
3 B3

其中code是关键字,可以用来连接查询用 Name 只是用来显示
...全文
162 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
lzy6204 2012-09-12
  • 打赏
  • 举报
回复
算了,我已经写程序解决了。谢谢好心人
kennyw964 2012-09-11
  • 打赏
  • 举报
回复
感觉有点牵强,为什么rownum能作为关联条件,这个没有逻辑
lzy6204 2012-09-11
  • 打赏
  • 举报
回复
就是 zhangandli 的结果,谢了,试试先
lzy6204 2012-09-11
  • 打赏
  • 举报
回复
谢谢 zhangandli
问题排版出了问题,没注意
人生无悔 2012-09-11
  • 打赏
  • 举报
回复
老兄,你要实现的功能是什么,这个你都不说清楚,别人又怎么知道呢
lzy6204 2012-09-11
  • 打赏
  • 举报
回复
不知道是不是排序的问题
假如A表有一条记录,B表有一条记录,同一个编码就会出现两条记录
出现了这种结果

code name1 name2
1 A1 B1
1 空 B2
2 A2 空
3 空 B3
3 A3 空
lzy6204 2012-09-11
  • 打赏
  • 举报
回复
也就是两个数据集,只有一个关键字,要合并在一起,每个数据集的行数都是动态的
lzy6204 2012-09-11
  • 打赏
  • 举报
回复
不知道是不是排序的问题
假如A表有一条记录,B表有一条记录,同一个编码就会出现两条记录
出现了这种结果

code name1 name2
1 A1 B1
1 空 B2
2 A2 空
3 空 B3
3 A3 空
陈字文 2012-09-11
  • 打赏
  • 举报
回复
.....没有看明白需求,这个要实现什么逻辑呢
人生无悔 2012-09-10
  • 打赏
  • 举报
回复

--搞不懂你是什么逻辑,我只能蒙了,不过结果是和你的一致的,呵呵
with A(Code,Name) as(
select 1,'A1' from dual
union all select 2,'A2' from dual
),
B(Code,Name) as(
select 1,'B1' from dual
union all select 1,'B2' from dual
union all select 3,'B3' from dual
)
select nvl(A1.Code,B1.Code) Code,
A1.Name Name1,
B1.Name Name2
from
(select rownum rn,Code,Name from A) A1
full join
(select rownum rn,Code,Name from B) B1
on A1.Code=B1.Code and A1.rn=B1.rn
order by Code;
/*
CODE NAME NAME
---------- ---- ----
1 A1 B1
1 B2
2 A2
3 B3
已选择4行。
*/
人生无悔 2012-09-10
  • 打赏
  • 举报
回复
第二行的Name1为什么为空呢,根据什么来判断的?
lzy6204 2012-09-10
  • 打赏
  • 举报
回复
排版出问题了
结果应该是这样的
Code Name1 Name2
1 A1 B1
1 空 B2
2 A2 空
3 空 B3
人生无悔 2012-09-10
  • 打赏
  • 举报
回复
你的业务逻辑是什么,没看明白
为什么表B中Code为1的第一条和A条一条相等放到后一列,而第二条也不是相等的,就放在下面了,按什么逻辑来组合的?
lzy6204 2012-09-10
  • 打赏
  • 举报
回复
这么晚了估计没人了:(

17,382

社区成员

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

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