Oracle不支持像MySQL / PostgreSQL这样的语法“group by 1,2,3”,这是非常不方便的,有人知道为什么Oracle不想支持这个吗?这应该不难,对吗?
答案 0 :(得分:4)
实际上,按常识说,列别名只能用于ORDER BY
或外部查询。因为,当您执行ORDER by
时,它仅在行选择之后发生,到那时别名可用。但是在GROUP BY
期间,只有在分组完成后才进行选择,所以在分组完成之前,oracle不知道列别名。
因此,简而言之,因为SELECT
仅在GROUP BY
之后发生,并且由于列别名仅在SELECT
中生成,所以oracle不支持它!程序员在理解这一点时,也可能不需要在分组中需要列别名。至少我。