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

'%' की तरह प्रयोग करें और NUMBER कॉलम के साथ NULL मानों का मिलान करें

ऐसा लगता है कि आप अपने लिए जीवन कठिन बना रहे हैं। उन्हें शून्य छोड़ दें, फिर करें:

where (param1 is null or t.col1 like param1)
and (param2 is null or t.col2 like param2)

अगर param1 (प्रक्रिया तर्क; जीवन सरल है जब आपके पैरामीटर/चर नाम और कॉलम नाम अलग हैं ... इसलिए मैंने इसे थोड़ा स्पष्ट करने के लिए कॉलम नाम बदल दिए हैं) शून्य है इसे मूल रूप से अनदेखा किया जाता है * और सभी पंक्तियां उस हिस्से फ़िल्टर का, कॉलम मान शून्य है या नहीं। अगर param2 है नहीं शून्य तो is null इसके लिए जाँच करें कि विफल रहता है और केवल (नहीं-शून्य) कॉलम मानों वाली पंक्तियाँ जो param2 . से मेल खाती हैं मान फ़िल्टर के उस हिस्से से मिलता है।

* किसी or में शर्तें किसी भी क्रम में मूल्यांकन किया जा सकता है; is null पहले चेक करें का मतलब यह नहीं है कि like मूल्यांकन नहीं किया जाएगा - लेकिन ऑप्टिमाइज़र उस तरह की चीज़ों के बारे में बहुत स्मार्ट है



  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 SQL - स्ट्रिंग से आंशिक डुप्लिकेट हटाएं

  2. Oracle में सही कोष्ठक त्रुटि ORA-00907

  3. ODP.NET एकीकृत सुरक्षा अमान्य कनेक्शन स्ट्रिंग तर्क

  4. मैं इस तालिका में लगातार डुप्लिकेट मान कैसे प्राप्त कर सकता हूं?

  5. Oracle PL/SQL क्वेरी संकलित नहीं करता है