zoukankan      html  css  js  c++  java
  • 别名的使用注意,""真坑。

    我们使用别名都是使用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

  • 相关阅读:
    Autodesk vasari Design better buildings
    NOOK2刷机成功
    使用DirectPlay进行网络互联(2)
    程序员的灯下黑:不要忘记你的目标
    【ZT】中西医的区别
    D3D中公告板的使用示例
    使用DirectPlay进行网络互联(1)
    使用DirectPlay进行网络互联(4)
    计算几何常用算法概览
    DirectX9.0教程之ID3DXSprite篇[转载]
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/7271487.html
Copyright © 2011-2022 走看看