MDA/MDD/TDD/DDD/DDDDDDD
          posts - 536, comments - 111, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
          別名為什么不能做條件,ORA-00904: "CCC": 標識符無效。

          請教:
          SQL> select jno,jname,nval,val,val-nval ccc from jj where ccc > 1;
          出現錯誤:
          ORA-00904: "CCC": 標識符無效

          為什么啊,查資料select的用法里面沒用查到。
          SQL> select jno,jname,nval,val,val-nval ccc from jj where (val-nval)> 1;
          這樣就可以的,我還想按 ccc 排序,也不行。
          哪位老大指點一下,多謝!!

          where子句中只能直接使用欄位或者常量,而不能使用欄位的別名,除非這個別名來自子查詢之中,如:select .... from (select col1 ccc from table) where ccc > 1
          而order by 則可以直接使用別名,如select col1 ccc from table order by ccc
          我想,這和sql 的執行順序是有關的,where中的部分先執行 -> 如果有group by,接著執行group by -> select中的函數計算、別名指定再運行 -> 最后order by
          因此,字段、表達式的別名在where子句和group by子句都是不能使用的,而在order by中不僅可以使用別名,甚至可以直接使用欄位的下標來進行排序,如:order by 1 desc,2 asc 呵呵


          評論

          # re: 別名為什么不能做條件,ORA-00904: "CCC": 標識符無效  回復  更多評論   

          2007-10-13 16:19 by liuge
          qingchu l
          主站蜘蛛池模板: 广水市| 镇沅| 瑞昌市| 中卫市| 星座| 来宾市| 新巴尔虎左旗| 郓城县| 龙胜| 乌拉特后旗| 锦州市| 潍坊市| 黄龙县| 于田县| 隆尧县| 梨树县| 邢台县| 盐山县| 甘德县| 昭苏县| 昌宁县| 肇庆市| 郑州市| 镇江市| 北辰区| 略阳县| 东至县| 灵寿县| 临颍县| 屏东市| 确山县| 抚顺县| 泽普县| 射阳县| 南溪县| 冀州市| 红安县| 安岳县| 阳曲县| 双城市| 马鞍山市|