Oracle 10.2 SQL 在嘗試在WHERE 子句中使用「Case 表達式列」時提出了挑戰。由於 SQL 語句處理的邏輯順序,遇到錯誤「ORA-00904:「%s:無效識別碼」。
SQL語句以以下方式處理序列:
原始查詢的WHERE子句中:
SELECT ename , job , CASE deptno WHEN 10 THEN 'ACCOUNTS' WHEN 20 THEN 'SALES' ELSE 'UNKNOWN' END AS department FROM emp WHERE department = 'SALES'
'department '由CASE 表達式產生的列在WHERE子句求值期間尚不存在,因此,WHERE子句不能。 >解法2:重複CASE 表達式WHERE 子句
SELECT * FROM ( SELECT ename , job , CASE deptno WHEN 10 THEN 'ACCOUNTS' WHEN 20 THEN 'SALES' ELSE 'UNKNOWN' END AS department FROM emp ) tmp WHERE department = 'SALES' ;
以上是如何在 Oracle 10.2 WHERE 子句中使用 CASE 表達式列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!