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

एकाधिक कॉलम और विवरण/एएससी सॉर्ट के साथ क्लॉज द्वारा आदेश के लिए केस स्टेटमेंट

आप कई मामले लिख सकते हैं, भले ही उन सभी की स्थिति समान हो।

ORDER BY 
    CASE @OrderByColumn WHEN 1 THEN Forename END DESC, 
    CASE @OrderByColumn WHEN 1 THEN Date END, 
    CASE @OrderByColumn WHEN 1 THEN Location END, 
    CASE @OrderByColumn WHEN 2 THEN Surname END ASC 

असल में, आप क्रमबद्ध करने के लिए कॉलम निर्दिष्ट नहीं करते हैं, लेकिन एक अभिव्यक्ति।

यदि शर्त पूरी नहीं होती है तो केस स्टेटमेंट शून्य हो जाता है, तो वास्तव में इसका मतलब है:

CASE @OrderByColumn WHEN 1 THEN Forename ELSE NULL END

तो अगर @OrderByColumn 1 नहीं है तो स्टेटमेंट हमेशा NULL देता है। वैसे, यह इसे छँटाई से बाहर नहीं करता है, लेकिन यह परिणाम में उन सभी पंक्तियों को एक साथ रखता है, जिससे 'उपनाम' पंक्तियों के उस समूह के भीतर निर्णायक छँटाई करता है।



  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 सर्वर जॉब

  2. ऑर्डर बाय का उपयोग करते समय COALESCE के साथ अजीब TSQL व्यवहार

  3. SQL समूह और महीने के हिसाब से राशि - शून्य के लिए डिफ़ॉल्ट

  4. Row_number () का उपयोग करके तालिका से डुप्लिकेट रिकॉर्ड हटाने की आवश्यकता है

  5. स्कीमा नाम के साथ सभी संग्रहीत प्रक्रियाओं की सूची बनाएं