2013-01-11 17 views
6

क्या एक IF एसक्यूएल कथन में दो EXISTS स्थितियों का परीक्षण करना संभव है? मैंने निम्नलिखित कोशिश की है।यदि मौजूद है या मौजूद है?

IF EXIST (SELECT * FROM tblOne WHERE field1 = @parm1 AND field2 = @parm2) 
    OR 
    EXIST (SELECT * FROM tblTwo WHERE field1 = @parm5 AND field2 = @parm3) 

मैं कोई लाभ नहीं हुआ वहाँ में अतिरिक्त IF और कोष्ठक जोड़ने के साथ खेल की कोशिश की है, लेकिन।

क्या आप उचित वाक्यविन्यास के साथ मेरी मदद कर सकते हैं?

+0

@ user1142433 लिख सकता है - आप अपनी पूरी क्वेरी पोस्ट कर सकते हैं ? –

उत्तर

13

हैं एसक्यूएल सर्वर

IF EXISTS (SELECT * 
      FROM tblOne 
      WHERE field1 = @parm1 
        AND field2 = @parm2) 
    OR EXISTS (SELECT * 
       FROM tblTwo 
       WHERE field1 = @parm5 
         AND field2 = @parm3) 
    PRINT 'YES' 

ठीक है, ध्यान दें केवल एक चीज बदल EXISTS नहीं EXIST है। इसके लिए योजना शायद UNION ALL होगी कि यदि पहले परीक्षण किए गए छोटे सर्किट सही हैं तो शॉर्ट सर्किट।

+0

मुझे "आईएफ" के पास एक शर्त में निर्दिष्ट गैर-बूलियन प्रकार की एक अभिव्यक्ति है, जहां एक शर्त की उम्मीद है। " उस कोड के साथ। – user1142433

+0

@ user1142433 - कृपया जिस सटीक कोड का उपयोग कर रहे हैं उसे पोस्ट करें। इस उत्तर में कोड उस त्रुटि को नहीं देता है। [एसक्यूएल फिडल] (http://www.sqlfiddle.com/#!6/28328f/3) –

+0

क्षमाप्रार्थी। आपका समाधान पूरी तरह से काम करता है। मुझे अपने sproc में एक अतिरिक्त त्रुटि थी। – user1142433

5

आप मौजूद के अंत में एक एस याद

एस मौजूद हैं, नहीं मौजूद

+0

धन्यवाद। कभी-कभी यह साधारण चीजें हैं ... – user1142433

-1

तुम भी एक में बयान

IF EXISTS (SELECT * FROM tblOne WHERE field1 = @parm1 AND field2 IN (@parm2,@parm3) 
+0

यह प्रश्न इस प्रश्न के लिए उपयोगी नहीं है क्योंकि सवाल दो अलग-अलग तालिकाओं के बीच EXFSTS कथन को संबोधित करता है (कोड स्निपेट में नोट tblOne और tblTwo नोट करें)। –

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