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

जहां क्लॉज टर्म कोड का चयन करता है

जहाँ तक मुझे पता है कि Oracle SQL में कोई बूलियन प्रकार नहीं है, इसलिए आपके पास CASE नहीं हो सकता है अभिव्यक्ति जो एक बूलियन मान का मूल्यांकन करती है। सौभाग्य से, आपके विशेष मामले में आपको इसकी आवश्यकता नहीं है:

and TERM_CODE = :parm_DD_TermCode.TERM_CODE
and GPA_TERM_CODE = CASE
  WHEN TERM_CODE LIKE '%80'
       THEN SUBSTR(:parm_DD_TermCode.TERM_CODE, 1, 4) || '50'
  WHEN TERM_CODE LIKE '%50'
       THEN SUBSTR(:parm_DD_TermCode.TERM_CODE, 1, 4) || '10'
  WHEN TERM_CODE LIKE '%10'
       THEN to_char(to_number(SUBSTR(:parm_DD_TermCode.TERM_CODE, 1, 4)) - 1) || '80'
  END

जैसा कि आप देख सकते हैं, मैंने कुछ स्पष्ट प्रकार के रूपांतरण भी जोड़े हैं:SQL निहित रूपांतरणों पर भरोसा करना एक विशेष रूप से खराब विचार है . उपरोक्त कोड मानता है कि TERM_CODE और GPA_TERM_CODE तार हैं।




  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. 'आवश्यकता' अनुमतियों के मुद्दे पर OCIError?

  3. उदाहरण के साथ Oracle में प्राथमिक कुंजी पर शीर्ष प्रश्न

  4. ORA-00904::हाइबरनेट डिपेंडेंट ऑब्जेक्ट प्रोग्राम के साथ अमान्य पहचानकर्ता समस्या

  5. 11g में चयन कथन से नई बनाई गई तालिका के कॉलम के लिए डिफ़ॉल्ट मान कैसे सेट करें