2010-02-23 18 views
5

में सशर्त बयान ऐसा लगता है कि derby सशर्त बयान [IF] का समर्थन नहीं करता है। हमडर्बी

if exists (select 1 from customers where name='somename') 
    update customers ... 
else 
    insert into customers ... 

डर्बी में कैसे लिखते हैं? डर्बी में mysql का 'प्रतिस्थापित' नहीं है।

नोट: मैं डर्बी का उपयोग mysql के लिए यूनिट-परीक्षण प्रतिस्थापन के रूप में कर रहा हूं [जो उत्पादन mysql का उपयोग करेगा और यूनिट-टेस्ट डर्बी का उपयोग करेगा]।

उत्तर

2

http://db.apache.org/derby/docs/10.2/ref/rrefcasenullif.html#rrefcasenullif के बारे में क्या?

CASE 
WHEN select 1 from customers where name='somename' = 1 THEN update... 
ELSE insert... 
END 

मुझे पता नहीं है कि अगर काम करेगा, लेकिन यह एक शुरुआत की तरह लगता है:

CASE 
     WHEN 1 = 2 THEN 3 
     WHEN 4 = 5 THEN 6 
     ELSE 7 
    END 

तो हो सकता है आप की तरह कुछ कोशिश कर सकते हैं। सौभाग्य!

संपादित करें: इन चीजों में से कुछ को आजमाए जाने के बाद ... मुझे नहीं पता कि यह वास्तव में आपकी मदद करेगा या नहीं। ऐसा लगता है कि आप SELECT और INSERT के बीच स्विच को आग लगा सकते हैं; यह एक या दूसरे होना चाहिए और मामला अंदर जाना है। आप क्या करना चाहते हैं या संभव नहीं हो सकता है ...

+0

यह काम नहीं करेगा। खराब दस्तावेज डर्बी डीबी का उल्लेख नहीं है कि सीएएसई क्लॉज का उपयोग केवल किसी अन्य SQL खंड के हिस्से के रूप में किया जा सकता है उदा। चुनते हैं। उदाहरण के लिए, चयन मामला COUNT (*) जब 1 तब 10 और के 20 अंत

कहां से – Andreas

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