简单问题~~~列相加 50分~~~马上结贴

lok9828 2010-04-09 07:27:14
表1
字段A
X
Y
Z
表2
字段B
A
B

查询后
字段A 字段B
X A
Y B
Z

...全文
80 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Adebayor 2010-04-09
  • 打赏
  • 举报
回复
rownum就可以搞定
tangren 2010-04-09
  • 打赏
  • 举报
回复
--最好应该有一个排序字段,否则,如果从表中读出的数据无法保证顺序
SELECT A, B
FROM (SELECT rownum aid, A FROM (SELECT A FROM t1 ORDER BY a)),
(SELECT rownum bid, B FROM (SELECT B FROM t2 ORDER BY b))
WHERE aid = bid(+)
Phoenix_99 2010-04-09
  • 打赏
  • 举报
回复
with tab1 as(
select 'X' A from dual
union all
select 'Y' A from dual
union all
select 'Z' A from dual
)
,tab2 as(
select 'A' B from dual
union all
select 'B' B from dual
)

select A,B from
(select rownum as id,A from tab1),
(select rownum as xid,B from tab2)
where id = xid(+)


因为你所对应的表字段已经用null来填充了
union all的结果为俩表查询结果上下累计
先查询的结果在上面,后查询的结果在下面
所以你的结果为
字段A 字段B
X null
Y null
Z null select 表1.字段A , null as 字段2 from 表1 的结果
null A
null B select null as 字段1, 表2.字段2 from 表2 的结果


因为你的例子没有关联项,所以只好添加一个关系项
lok9828 2010-04-09
  • 打赏
  • 举报
回复
select 表1.字段A , null as 字段2 from 表1
union all
select null as 字段1, 表2.字段2 from 表2

出现
字段A 字段B
X
Y
Z
A
B

为什么呢?

17,377

社区成员

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

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