为何Oracle中不带别名的SELECT <列名> AS语法合法?
Oracle SQL中
SELECT <列名> AS省略别名的语法说明 先看实际测试的SQL语句:
create table a(c1 number null, c2 number null); select c1 as, c2 as from a;
执行以上语句不会报错,查询结果的列名默认沿用原列名C1和C2。
按照Oracle SQL参考文档的语法定义,SELECT列表项的格式为expr [ [ AS ] c_alias ],规则是:
[AS] c_alias整体可选;- 如果指定
[AS] c_alias,AS可选,但别名c_alias是必填项。
但实际Oracle数据库允许仅写AS而省略别名的写法,这属于Oracle对标准语法的扩展。此时AS相当于冗余关键字,不会改变列的别名,效果和直接写select c1, c2 from a;完全一致。
目前Oracle官方文档的语法定义部分未专门针对这个情况做补充说明,但这是数据库实际支持的合法语法。
内容的提问来源于stack exchange,提问作者yaoweijq
相关产品推荐
相关产品推荐

