मैं चाहता हूं कि मैं अपने क्लॉज के लिए एसक्यूएल सर्वर 2005 (जो मुझे पता नहीं है) में निम्न की तरह कुछ कर सकता है। कभी-कभी @teamID (एक संग्रहीत प्रक्रिया में पारित) एक मौजूदा टीमआईडी का मूल्य होगा, अन्यथा यह हमेशा शून्य होगा और मैं टीम तालिका से सभी पंक्तियां चाहता हूं।एसक्यूएल में सशर्त ऑपरेटर जहां क्लॉज
मैंने केस का उपयोग करके शोध किया और ऑपरेटर को पूरे वक्तव्य के पहले या बाद में आने की आवश्यकता है जो मुझे @teamid के मूल्य के आधार पर एक अलग ऑपरेटर रखने से रोकती है। मेरे चयन कथन को डुप्लिकेट करने के अलावा कोई सुझाव।
declare @teamid int
set @teamid = 0
Select Team.teamID From Team
case @teamid
when 0 then
WHERE Team.teamID > 0
else
WHERE Team.teamID = @teamid
end
नहीं सोचेंगे कि गतिशील एसक्यूएल या दो आईएफ ब्लॉक की अतिरिक्त जटिलता इसके लायक है, जब तक कि आप चीन के नेशनल स्पोर्ट एसोसिएशन ऑफ चाइना डेटाबेस से पूछताछ न करें ;-) – Andomar
लेकिन जटिलता और रखरखाव लागत हानि के प्रदर्शन का प्रदर्शन लाभ है ? – tpdi
सभी तीन विकल्पों में उनके पेशेवर और विपक्ष हैं - एंडोमर के सुझाव में एक ब्रैकेट याद करते हैं, और चीजें इरादे के अनुसार काम नहीं करेंगे। –