2011-03-04 18 views
8

मेरी आवश्यकता एक जटिल क्वेरी से एक संख्या प्राप्त करने के लिए है और जांचें कि num = वांछित संख्या है या नहीं।ऑरैकल में स्थिति के साथ चयन का उपयोग कैसे करें?

यदि यह desiredNum के बराबर है, तो मैं चयन बयान का एक और सेट करनी होगी,

वहाँ किसी भी तरह से मैं एक समारोह लेखन के बजाय एक प्रश्न में इस लक्ष्य को हासिल कर सकते हैं?

उदाहरण के लिए:

select case when val =2 
then select val1 from table1 
else 'false' 
from (select val from table) 

यह संभव है ??

उत्तर

0

मैं 100% नहीं हूं, मुझे समझ में आता है कि आपको क्या चाहिए। लेकिन मैं तुम्हें एक संघ का उपयोग करते हैं सकता है लगता है:

create table theValues (theValue integer) 
create table table1 (value1 integer) 
create table table2 (value2 integer) 


INSERT INTO theValues (thevalue) VALUES (2) 
INSERT INTO table1 (value1) VALUES (17) 
INSERT INTO table2 (value2) VALUES (8) 


SELECT value1 from table1 WHERE EXISTS (SELECT theValue from theValues WHERE theValue != 2) 
UNION ALL 
SELECT value2 from table2 WHERE EXISTS (SELECT theValue from theValues WHERE theValue = 2) 

इस मामले में "जादुई संख्या" 2. है theValues ​​तालिका क्वेरी देता है, तो 2, तो आप table2 से परिणाम से परिणाम प्राप्त है, और आप तालिका 1.

चीयर्स से परिणाम प्राप्त, डैनियल

+0

हाय डैनियल, जब मेरे मामले शर्त पूरी होने, मैं DB में एक और चयन क्वेरी चलाने के लिए सक्षम होना चाहिए .. आईडी इस हैं मुमकिन ?? – swathy

13
select case when val=2 then val1 else val end as thevalue 
from table1 

मुझे लगता है आप का मतलब है कि वैल और VAL1 एक ही मेज से दोनों हैं, लेकिन वैल = 2, VAL1 बजाय का उपयोग करने के लिए जब। आप वास्तव में दो तालिकाओं था, और वे दोनों केवल एक रिकॉर्ड प्रत्येक है, तो

select 
    case when val=2 
    then (select val1 from table1) 
    else 'false' 
    end 
from table 
+0

धन्यवाद धन्यवाद काम किया .. :) !! – swathy

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