Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL क्वेरी में केस स्टेटमेंट

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 * से बचना एक अच्छा विचार होगा इस कारण से, साथ ही अन्य कारणों से...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर (T-SQL) में दिनांक से वर्ष का दिन प्राप्त करें

  2. SQL सर्वर में मान () के साथ xml कॉलम से कई रिकॉर्ड प्राप्त करना

  3. चुनिंदा क्वेरी के साथ गतिशील रूप से कॉलम जोड़ें

  4. लेखांकन और डेटाबेस डिजाइन, डेबिट और क्रेडिट राशि का भंडारण

  5. SQL सर्वर में किसी तालिका के लिए हैश या चेकसम की गणना करें