sql - UNION ALL,ORDER BY 结尾,无效标识符,升序,错误信息
问题描述
我收到另一条错误消息。请参阅以下错误消息。在这里,我正在做一个 UNION ALL,我可以确认这个查询在最后没有 ORDER BY 的情况下有效。但是,我确实需要在最后按该列排序。所以,我不确定如何解决这个问题。我什至尝试删除第二个查询 a。到 a1。所以他们有不同的别名。我现在知道在执行 UNION ALL 时将 ORDER BY 放在代码的末尾,但没想到会得到无效的标识符。
错误信息
ORA-00904: "A1"."ID1": invalid identifier
Error at Line: 1 Column: 678
代码
select a.ID2, a.ID1, cnt, a.*, b.*
from (
select t.*,
count(distinct ID2) over(partition by ID1) cnt
from TABLE1 t) a
, TABLE2 b
where a.cnt > 1
and a.ID2=b.ID2 (+)
and (b.STATUS in ('A','L','P','S')
or b.DATE1 >= TO_DATE('2018-01-01','YYYY-MM-DD'))
union all
select a1.ID2, a1.ID1, cnt, a1.*, j.*
from (
select t.*,
count(distinct ID2) over(partition by ID1) cnt
from TABLE1 t) a1
inner join TABLE2 j
on a1.ID2=j.ID2
inner join SCHEMA1.TABLE3 d
on j.ALTER_ID2=d.ALTER_ID2
where a1.cnt > 1
order by a.ID1 asc, a1.ID1 asc
解决方案
利用ORDER BY 2, 1 asc -- order by column number
ORDER BY 在执行完完整的 SQL 之后执行。
推荐阅读
- javascript - 如何减少 ag Grid 中 tooltipValueGetter 所花费的时间?
- javascript - (index):36 Uncaught TypeError: firebase.auth is not a function
- python - 我在竞赛平台而不是我的 VSC 编辑器中遇到运行时错误
- google-chrome-extension - 如何在 Chrome 中直接编辑 chrome 扩展 contentscript 源文件
- python - 混淆矩阵报告准确性问题 jupyter
- arangodb - ArangoDB AQL:我可以从多个起始顶点遍历一个图,但确保所有遍历的唯一顶点?
- flutter - 我如何操纵复选框选择?
- html - 为什么我的 HTML 网站上启用了滚动条?
- javascript - React onClick 元素:调用另一个类元素
- scala - Scala spark:访问数组类型列中结构中的值?(或者,匿名结构类型列的访问成员)