GROUP BY 1是否为标准SQL?能否在SQL Server、Oracle中运行?
关于GROUP BY 1的兼容性与标准语法问题
你的SQL语句:
select c_name, count(1) as number from table_one group by 1
数据库兼容性说明
- SQL Server:2012及以上版本支持用数字指代SELECT列表中的列位置,这条语句可以正常执行;2012之前的版本不支持该写法,会抛出语法错误。
- Oracle:完全支持这种按SELECT列表列位置编号的GROUP BY写法,语句可以正常运行。
标准SQL语法说明
GROUP BY 1这种用数字指代SELECT列表中列位置的写法,属于SQL:2003及之后的官方标准语法。不过不同数据库厂商对标准的支持有时间差,比如早期SQL Server版本未跟进,直到2012版本才加入该支持。
内容的提问来源于stack exchange,提问作者BigTailMokey
相关产品推荐
相关产品推荐

