+ -
当前位置:首页 → 问答吧 → 集合运算符使用列别名排序问题,请帮忙。

集合运算符使用列别名排序问题,请帮忙。

时间:2011-12-02

来源:互联网

SELECT employee_id a, job_id, department_id
FROM employees
UNION ALL
SELECT employee_id , job_id, department_id
FROM job_history
UNION ALL
SELECT employee_id, job_id, department_id
FROM job_history
ORDER BY a

如上面例子,当两个select查询使用集合运算符时,可以使用别名排序,但三个select查询使用集合运算符时就无法使用别名进行排序,如果select中不使用别名,可以使用列名排序。如果有两个select使用相同别名就可以使用别名排序,请问是什么原因?最好能解答下集合查询时处理排序和别名的原理,谢谢!

作者: lnsylj   发布时间: 2011-12-02

没啥原理,就是这样的。
不过,可以用下面语句:
SQL code
with b as(
select 1 as a , 2 as job_id, 3 as dept_id from dual
union all
select 2 , 2 as job_id, 3 as dept_id from dual
union all
select 3  , 2 as job_id, 3 as dept_id from dual)
select * from b 
order by b.a

作者: yixilan   发布时间: 2011-12-02