首页 > 代码库 > 别名的使用注意,""真坑。
别名的使用注意,""真坑。
我们使用别名都是使用as关键字。
大多数时候我们都会省略as关键字,然后后面直接加别名就好了。我的习惯是别名用双引号括起来。
今天因为这个习惯坑了我一大波
首先oracle的别名的规则:
AS 别名
特殊字或者保留字啥的使用引号括起来别名
别名是在查询语句内,语句的执行顺序:
1. FROM语句
2. WHERE语句(结合条件)
3. START WITH语句
4. CONNECT BY语句
5. WHERE语句
6. GROUP BY语句
7. HAVING语句
8. MODEL语句
9. SELECT语句
10. UNION、MINUS、INTERSECT等集合演算演算
11. ORDER BY语句
使用别名的时候可能由于执行顺序导致找不到列
还有,在子查询中最好不要用引号别名。会导致你的外面where无法使用你子查询得到伪表中的列,这个我也不清楚原因。
证据:
select * from (select id, create_date, SUBSTR(channel,0,NVL(INSTR(channel, ‘|‘, 1,1),0)-1) "sms_tag_id", SUBSTR(channel,NVL(INSTR(channel, ‘|‘, 1,1),0)+1, length(channel)- NVL(INSTR(channel, ‘|‘, 1,1),0)) "store_id", channel from user_login where NVL(INSTR(channel, ‘|‘, 1,1),0) != 0) u where u.store_id = ‘platf.anzhi‘
执行报错:U.store_Id: invalid identifier
当我去掉了双引号它就好了。我擦。
参考链接:http://www.cnblogs.com/godtrue/p/3791591.html
别名的使用注意,""真坑。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。