Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

एसक्यूएल कॉलम उपनाम को पहचान नहीं रहा है जहां खंड

<ब्लॉकक्वॉट>

एक कॉलम को एक अलग नाम देने के लिए एक उपनाम का उपयोग क्वेरी चयन सूची में किया जा सकता है। आप कॉलम को संदर्भित करने के लिए 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 क्लॉज में कॉलम उपनाम का उल्लेख कर सकते हैं:

  1. उप-क्वेरी
  2. सामान्य तालिका अभिव्यक्ति (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>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बिना ब्राउज़र के Oracle फॉर्म को स्टैंडअलोन के रूप में चलाएं

  2. छँटाई के साथ पुनरावर्ती सबक्वेरी

  3. बेस 36 से बेस 10 रूपांतरण केवल SQL का उपयोग करके

  4. SQLException:jdbc के लिए कोई उपयुक्त ड्राइवर नहीं मिला:oracle:पतला:@// localhost:1521/orcl

  5. SQL अभ्यास के लिए Oracle एक्सप्रेस संस्करण कैसे स्थापित करें