1

ユニオン演算子は、(たとえば) 重複を排除した後に 2 つのテーブルからすべての行を返すために使用されることを知っています。例:

SELECT a_id 
FROM a 
UNION
SELECT b_id
FROM b;

重複を除いて A と B のすべての要素をリストした結果は {1,2,3,4,5,6,7,8} です。A と B を結合すると、{4,5} しか得られません。1 ~ 8 の完全なリストを取得するには、完全な外部結合を実行する必要があります。私の質問は、ユニオン演算子を使用して、employees というテーブルから表示したい場合、employee_id と job_id (employee id は数値データ型、job_id は VARCHAR2 データ型) です。これを行うにはどうすればよいでしょうか?

次のようなものでしょうか: これは明らかに oracle では実行されません。

SELECT employee_id
UNION
SELECT job_id
FROM employees;
4

1 に答える 1

0

すべての EMPLOYEE_ID に続いてすべての JOB_ID を結合したい場合は、使用する

SELECT TO_CHAR(EMPLOYEE_ID) FROM EMPLOYEES
UNION ALL
SELECT JOB_ID FROM EMPLOYEES

EMPLOYEE_ID が 1、2、および 3 の行があり、それらの同じ行の JOB_ID が 1、11、および 111 である場合、次の値を持つ 1 つの列を持つ 6 行の結果セットが得られます。

1
2
3
1
11
111

UNION ALL を使用することで、Oracle は重複を通過させます。

共有してお楽しみください。

于 2013-03-29T02:32:49.963 に答える