我有两个具有相同列的表。我正在使用oracle 10g。
TableA
------
id status
---------------
1 W
2 R
TableB
------
id status
---------------
1 W
3 S
我有两张桌子。我使用UNION从两个表中获得结果,如下所示。
select id, status
from TableA
union
select id, status
from TableB
order by status;
如果我这样做,是否同时申请了两个查询?
我的要求首先是必须结合结果,然后必须应用order by
...
我该怎么做?
谢谢!
答案 0 :(得分:2)
根据您显示的数据,您的查询将返回此信息:
ID STATUS
-- ------
2 R
3 S
1 W
那是因为UNION只返回唯一的行,而(1,'W')行有重复的行。
如果您想要包含所有行,即使是重复行,请使用UNION ALL
代替UNION
:
select id, status
from TableA
union all
select id, status
from TableB
order by status;
使用UNION ALL
,您的查询将返回此信息:
ID STATUS
-- ------
2 R
3 S
1 W
1 W
答案 1 :(得分:0)
尝试以下查询
select id, status
from (select id, status from TableA
union select id, status from TableB)
order by status
答案 2 :(得分:0)
select id, status
from TableA
union
select id, status
from TableB
order by 2; -- status
答案 3 :(得分:-1)
我认为你需要与众不同:
Select Distinct id, status
from (
select id, status from TableA
union
select id, status from TableB)
order by status