एक कॉलम को एक अलग नाम देने के लिए एक उपनाम का उपयोग क्वेरी चयन सूची में किया जा सकता है। आप कॉलम को संदर्भित करने के लिए GROUP BY, ORDER BY, या HAVINGक्लॉज में उपनाम का उपयोग कर सकते हैं।
मानक SQL WHERE क्लॉज में कॉलम उपनामों के संदर्भों की अनुमति नहीं देता है। यह प्रतिबंध इसलिए लगाया गया है क्योंकि जब WHERE क्लॉज का मूल्यांकन किया जाता है, तो हो सकता है कि कॉलम का मान अभी तक निर्धारित नहीं किया गया हो।
तो, निम्न क्वेरी अवैध है:
SQL> SELECT empno AS employee, deptno AS department, sal AS salary
2 FROM emp
3 WHERE employee = 7369;
WHERE employee = 7369
*
ERROR at line 3:
ORA-00904: "EMPLOYEE": invalid identifier
SQL>
कॉलम उपनाम की अनुमति है:
- समूह द्वारा
- आदेश दें
- हो रहा है
आप निम्नलिखित मामलों में WHERE क्लॉज में कॉलम उपनाम का उल्लेख कर सकते हैं:
- उप-क्वेरी
- सामान्य तालिका अभिव्यक्ति (CTE)
उदाहरण के लिए,
SQL> SELECT * FROM
2 (
3 SELECT empno AS employee, deptno AS department, sal AS salary
4 FROM emp
5 )
6 WHERE employee = 7369;
EMPLOYEE DEPARTMENT SALARY
---------- ---------- ----------
7369 20 800
SQL> WITH DATA AS(
2 SELECT empno AS employee, deptno AS department, sal AS salary
3 FROM emp
4 )
5 SELECT * FROM DATA
6 WHERE employee = 7369;
EMPLOYEE DEPARTMENT SALARY
---------- ---------- ----------
7369 20 800
SQL>