我有一個查詢瞭解Oracle別名 - 除非包含在第二個查詢中,否則爲什麼在查詢中不能識別別名?
SELECT COUNT(*) AS "CNT",
imei
FROM devices
它執行就好了。我想用WHERE語句進一步限制查詢。的(力所能及)合理的下一步是修改從動地查詢:
SELECT COUNT(*) AS "CNT",
imei
FROM devices
WHERE CNT > 1
然而,這導致一個錯誤消息ORA-00904:「CNT」:無效的標識符。出於某種原因,在另一個查詢包裹查詢生成所需的結果:
SELECT *
FROM (SELECT COUNT(*) AS "CNT",
imei
FROM devices
GROUP BY imei)
WHERE CNT > 1
爲什麼甲骨文無法識別別名「CNT」,在第二個查詢?
作爲旁註:此查詢(帶聚合)用HAVING語句寫得更好:「select count((*))cnt,imei from imei count((*))> 1」 – 2011-05-27 15:06:59