如何在oracle中使用union运算符

时间:2013-03-29 01:34:29

标签: oracle

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

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;

1 个答案:

答案 0 :(得分: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,那么您将得到一个包含单个列的六行结果集,其值为< / p>

1
2
3
1
11
111

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

分享并享受。