1

我知道联合运算符用于(例如)在消除重复后返回两个表中的所有行。例子:

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 的完整列表。我的问题是,如果我想使用 union 运算符从名为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
2
3
1
11
111

通过使用 UNION ALL,Oracle 将允许重复项通过。

分享和享受。

于 2013-03-29T02:32:49.963 回答