1

同じ列を持つ 2 つのテーブルがあります。オラクル10gを使用しています。

TableA
------
id  status
---------------

1   W
2   R

TableB
------
id  status
---------------

1   W
3   S

私は2つのテーブルを持っています。以下のように UNION を使用して両方のテーブルから結果を取得します。

select id, status 
from TableA 
union 
select id, status 
from TableB 
order by status;

私がそれを行うと、両方のクエリに適用されますか?

私の要件は、最初に結果を結合し、次に適用する必要があることorder byです...

どうやってやるの?

ありがとう!

4

4 に答える 4

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
于 2013-03-11T13:22:35.113 に答える
0

次のクエリを試してください

select id, status 
from (select id, status from TableA 
      union select id, status from TableB) 
order by status
于 2013-03-11T12:58:28.157 に答える
0
select id, status 
from TableA 
union 
select id, status 
from TableB 
order by 2; -- status 
于 2013-03-11T13:08:48.380 に答える
-1

Distinct が必要だと思います:

Select Distinct id, status 
from (
      select id, status from TableA 
      union
      select id, status from TableB)
order by status
于 2013-03-11T13:03:34.203 に答える