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

डिकोड उपनाम पर ORA-00904 अमान्य पहचानकर्ता

दस्तावेज़ीकरण से (जोर जोड़ा गया):

<ब्लॉककोट>

आप एक कॉलम उपनाम का उपयोग कर सकते हैं, c_alias , चयन सूची में तत्काल पूर्ववर्ती अभिव्यक्ति को लेबल करने के लिए ताकि कॉलम एक नए शीर्षक के साथ प्रदर्शित हो। उपनाम प्रभावी रूप से क्वेरी की अवधि के लिए चयन सूची आइटम का नाम बदल देता है। उपनाम का उपयोगORDER BY . में किया जा सकता है खंड, लेकिन क्वेरी में अन्य खंड नहीं।

इसलिए आप where . में उपनाम का उल्लेख नहीं कर सकते खंड, जहां इस समय आपके पास है:

...
AND (account_amt NOT BETWEEN ...
...

उपनाम उस बिंदु पर मान्य नहीं है, इसलिए यह किसी एक तालिका में उस नाम के साथ एक स्तंभ की तलाश कर रहा है, और उसे कोई नहीं मिल रहा है। order by . में यह ठीक है हालांकि।

आपको या तो उपनाम को बार-बार decode . से बदलना होगा कथन, या संभवतः एक सबक्वेरी का उपयोग करें और फिर उपनाम को where . में देखें एक बाहरी क्वेरी में क्लॉज, लेकिन आपकी अन्य शर्तें कितनी चुनिंदा हैं, इस पर निर्भर करते हुए यह कम कुशल हो सकता है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्लप्लस कैसे कनेक्ट नहीं हो रहा है?

  2. NAME_IN Oracle D2k फ़ॉर्म में अंतर्निर्मित

  3. पीएल/एसक्यूएल प्रक्रिया का उपयोग कर ऑरैकल 10 जी में टेबल का डंप लेना

  4. R12.1.3 . में समवर्ती अनुरोध सबमिट करते समय वितरण विकल्प

  5. जब कोई परिणाम नहीं लौटाया जाता है तो ExecuteScalar () को संभालना