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

Oracle SQL में कम से कम मान लेकिन NULL नहीं

यदि कोई तर्क NULL है, तो आप अन्य तर्कों में से कम से कम लेना चाहते हैं। यदि सभी तर्क NULL हैं, तो आप NULL वापस करना चाहते हैं।

मैं दो तर्कों के लिए कुछ इस तरह का उपयोग कर सकता हूं:

LEAST(NVL(colA,colB), NVL(colB,colA))

हालांकि>2 तर्कों के लिए यह बदसूरत होने लगता है:

LEAST(COALESCE(colA,colB,colC)
     ,COALESCE(colB,colA,colC)
     ,COALESCE(colC,colA,colB))

किस बिंदु पर मैं जादुई मूल्यों पर विचार करना शुरू करूंगा; लेकिन यह छोटी गाड़ी हो सकती है (उदाहरण के लिए क्या होगा यदि मूल्यों में से एक वैध रूप से है जादू मूल्य?):

SELECT CASE WHEN r = maxv THEN NULL ELSE r END AS result
FROM   (SELECT LEAST(NVL(:colA,maxv)
                    ,NVL(:colB,maxv)
                    ,NVL(:colC,maxv)) AS r, maxv
        FROM   (SELECT 9.999999999999999999999999999999999999999e125
                       AS maxv FROM DUAL));


  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. Oracle डेटाबेस में अनुमत कनेक्शन की अधिकतम संख्या की जाँच कैसे करें?

  3. Oracle SQL*Plus प्रारंभ करते समय TNS प्रोटोकॉल एडेप्टर त्रुटि

  4. FRM-50026 दिनांक DD-MON-YYYY जैसे प्रारूप में दर्ज किया जाना चाहिए

  5. हर 5 मिनट में ताज़ा होने वाला भौतिक दृश्य बनाना