为什么Oracle不支持“1,2,3组”?

时间:2013-12-27 06:44:50

标签: oracle group-by

Oracle不支持像MySQL / PostgreSQL这样的语法“group by 1,2,3”,这是非常不方便的,有人知道为什么Oracle不想支持这个吗?这应该不难,对吗?

1 个答案:

答案 0 :(得分:4)

实际上,按常识说,列别名只能用于ORDER BY或外部查询。因为,当您执行ORDER by时,它仅在行选择之​​后发生,到那时别名可用。但是在GROUP BY期间,只有在分组完成后才进行选择,所以在分组完成之前,oracle不知道列别名。

我认为,这非常直截了当。可能是其他DBMS支持它们,实现一些SQL预处理。

因此,简而言之,因为SELECT仅在GROUP BY之后发生,并且由于列别名仅在SELECT中生成,所以oracle不支持它!程序员在理解这一点时,也可能不需要在分组中需要列别名。至少我。