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

यदि कथन जहां खंड के भीतर है

CASE आपकी मदद कर सकता है:

SELECT t.first_name,
       t.last_name,
       t.employid,
       t.status
  FROM employeetable t
 WHERE t.status = (CASE WHEN status_flag = STATUS_ACTIVE THEN 'A'
                        WHEN status_flag = STATUS_INACTIVE THEN 'T'
                        ELSE null END)
   AND t.business_unit = (CASE WHEN source_flag = SOURCE_FUNCTION THEN 'production'
                               WHEN source_flag = SOURCE_USER THEN 'users'
                               ELSE null END)
   AND t.first_name LIKE firstname
   AND t.last_name LIKE lastname
   AND t.employid LIKE employeeid;

CASE कथन एकल मान उत्पन्न करने के लिए अनेक स्थितियों का मूल्यांकन करता है। इसलिए, पहले उपयोग में, मैं status_flag के मान की जांच करता हूं, 'ए', 'टी' या शून्य लौटाता हूं, जो इसके मूल्य पर निर्भर करता है, और इसकी तुलना t.status से करता है। मैं दूसरे केस स्टेटमेंट के साथ business_unit कॉलम के लिए भी ऐसा ही करता हूं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. EBS R12 घटक संस्करण कैसे खोजें

  2. ओले-डीबी के लिए ऑरैकल प्रदाता के संस्करण की जांच कैसे करें। oraOLEDB.Oracle प्रदाता

  3. योजना लागत दर्द बिंदु की व्याख्या करें

  4. Oracle में केस असंवेदनशील खोज

  5. Oracle बाइंड वैरिएबल के साथ समस्या ठीक से इंडेक्स का उपयोग नहीं कर रही है