2013-02-22 10 views
7

मैं अगर वहाँ अगर संभावनाअगर-elseif-किसी और ओरेकल एसक्यूएल में 'शर्त'

जैसे कुछ बात प्राप्त करने के लिए 'अगर-elseif-बाकी' हालत, मुझे पता है एक 'केस-जब-तब सोच रहा हूँ -सैसे 'लेकिन यह एक समय में केवल एक शर्त की जांच करता है (अगर मैं इसे सही ढंग से समझता हूं)। मैं कैसे ओरेकल एसक्यूएल में अगर-elseif-बाकी परिदृश्य

+1

नेस्टिंग केस स्टेटमेंट एक विकल्प है। मैं ओरेकल के साथ पर्याप्त परिचित नहीं हूं कि यह जानने के लिए कि क्या कोई बेहतर तरीका है या नहीं। –

+0

_it द्वारा आपके द्वारा क्या मतलब है एक समय पर केवल एक शर्त जांचता है क्योंकि केस स्टेटमेंट की मदद करनी चाहिए .. फिर डीकोड का उपयोग न करें, लेकिन यह केवल समानता जांच करता है – asifsid88

+0

http://stackoverflow.com/questions/14386881/using-if- else-in-oracle – glh

उत्तर

0

"Oracle में डिकोड" के लिए बाहर देखो को प्राप्त कर सकते

decode(expression , search , result [, search , result]... [, default]) 

यह इसी तरह की है, "अगर-elseif-कुछ"

संदर्भ लें करने के लिए: http://www.techonthenet.com/oracle/functions/decode.php

नोट: यह केवल समानता के चेक करता है ..

17

अगर/किसी और टी की तरह मामले बयानों का उपयोग कर आप उपयोग कर सकते हैं उनके।

SELECT ename, CASE WHEN sal = 1000 THEN 'Minimum wage' 
        WHEN sal > 1000 THEN 'Over paid' 
        ELSE 'Under paid' 
       END AS "Salary Status" 
FROM emp; 
1

मुझे पता है एक 'केस-जब-तब-बाकी' नहीं है लेकिन यह एक समय

क्या आप का वर्णन कर रहे हैं एक साधारण मामला है में केवल एक हालत जाँच करता है। ओरेकल दो केस प्रकार हैं: सरल और खोजा गया

सरल

case A 
    when 1 then 'foo' 
    when 2 then 'bar' 
    else .. 
end 

(अधिक जानकारी के लिए http://docs.oracle.com/cd/B19306_01/server.102/b14200/expressions004.htm यहाँ देखें) खोज की

case 
    when A=1 and B='A' then 'foo' 
    when D + C =1 and B !='A' then 'Bar' 
    else .. 
end 

आप शायद एक की खोज मामले का उपयोग करना चाहते। आप पीएल/एसक्यूएल या एसक्यूएल में उनका उपयोग कर सकते हैं। उदाहरण के लिए एसक्यूएल

select .. 
    from table 
where case 
     when A=1 and B='A' then 'foo' 
     when D + C =1 and B !='A' then 'Bar' 
     else .. 
     end = 'foo' 
+0

मैंने इस तरह कुछ चीज इस्तेमाल की थी लेकिन यह काम नहीं कर रहा है – user964147

+0

हाँ मुझे खोज मामले की आवश्यकता है – user964147

संबंधित मुद्दे