我知道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;
答案 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将允许重复项通过。
分享并享受。