CASE
तार्किक प्रवाह नियंत्रण के लिए उपयोग नहीं किया जाता है... IF
का उपयोग करें / ELSE IF
इसके बजाय:
declare @TypeofDayID int
set @TypeofDayID = (Select TypeofDayID from RepInfo where RepInfoID = @RepInfoID)
IF @TypeofDayID = 1
Select *
from RepInfo RD inner join SellingInfo S on S.RepInfoID = @RepInfoID
ELSE IF @TypeofDayID = 2
Select *
from RepInfo RD inner join UpgradingInfo U on U.RepInfoID = @RepDailyID
ELSE IF @TypeofDayID = 9 or @TypeofDayID = 10
Select *
from RepInfo RD inner join DeliveryInfo D on D.RepDailyID = @RepDailyID
ध्यान रखें... चूंकि आप SELECT *
. का उपयोग कर रहे हैं , और @TypeOfDayID
. के आधार पर किसी भिन्न तालिका में शामिल होना , आप संभवतः एक दांतेदार परिणाम सेट के साथ समाप्त होंगे, जिसका अर्थ है कि आपके पास अलग-अलग संख्या में कॉलम होंगे, जिसके आधार पर शाखा ली गई है।
प्रोग्रामेटिक रूप से काम करने के लिए यह एक दर्द हो सकता है, इसलिए SELECT *
से बचना एक अच्छा विचार होगा इस कारण से, साथ ही अन्य कारणों से...