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

Oracle SQL में कॉम्प्लेक्स IF स्टेटमेंट का उपयोग करना

पढ़ें दस्तावेज वर्चुअल कॉलम पर:

CREATE TABLE Rent_Band
(
    Plot_ID NUMBER(3),
    Band VARCHAR(1) AS
       (CASE WHEN Owner_Category = 'Council' AND Sheds ='No' THEN 'A'
            WHEN Owner_Category = 'Private' AND Water_Supply ='Yes' THEN 'D'
            WHEN Owner_Category = 'Council' AND Water_Supply ='No' AND Sheds ='Yes' THEN 'B'
            WHEN Owner_Category = 'Private' AND Water_Supply ='No' AND Sheds ='No' THEN 'B'
       ELSE 'C' END),
    Rent_Charge NUMBER(4), 
    Owner_Category VARCHAR(10) CONSTRAINT Checking_Owner_Category CHECK((Owner_Category='Private') OR (Owner_Category='Council')), 
    Sheds VARCHAR(3) CHECK((Sheds='Yes') OR (Sheds='No')), 
    Water_Supply VARCHAR(3) CHECK((Water_Supply='Yes') OR (Water_Supply='No'))
)

बीटीडब्ल्यू, मैं दृढ़ता से अनुशंसा करता हूं:

  • एक bit का उपयोग करना Yes . के बजाय फ़ील्ड /No Sheds . के लिए बाधा और Water_Supply (कमरे और ओवरहेड चेकिंग बाधाओं को बचाता है, और अधिकांश ऐप भाषाओं में सीधे बूलियन में अनुवाद करता है)
  • Owner_Category के लिए लुकअप तालिका का उपयोग करना मूल रूप से समान कारणों से एक स्ट्रिंग बाधा के बजाय



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. इश्यू बिल्डिंग cx_Oracle - libclntsh.so.11.1 => नहीं मिला

  2. GI 12.2 अपग्रेड के लिए ASM में VOTE डिस्कग्रुप बढ़ाएँ

  3. Oracle में KEEP के साथ और उसके बिना विभाजन

  4. RMAN का उपयोग करके डेटाबेस को कैसे पुनर्प्राप्त करें

  5. पीएल/एसक्यूएल प्रक्रिया में क्लॉज द्वारा डायनामिक ऑर्डर कैसे उत्पन्न करें?