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

गतिशील आदेश दिशा

आपके पास लगभग दो समान हो सकते हैं ORDER BY आइटम, एक ASC और एक DESC , और अपना CASE विस्तृत करें उनमें से एक या दूसरे को हमेशा एक ही मान के बराबर बनाने के लिए बयान:

ORDER BY
      CASE WHEN @OrderDirection = 0 THEN 1
      ELSE
           CASE WHEN @OrderByColumn = 'AddedDate' THEN CONVERT(varchar(50), AddedDate)
                WHEN @OrderByColumn = 'Visible' THEN CONVERT(varchar(2), Visible)
                WHEN @OrderByColumn = 'AddedBy' THEN AddedBy
                WHEN @OrderByColumn = 'Title' THEN Title
           END
      END ASC,
      CASE WHEN @OrderDirection = 1 THEN 1
      ELSE
           CASE WHEN @OrderByColumn = 'AddedDate' THEN CONVERT(varchar(50), AddedDate)
                WHEN @OrderByColumn = 'Visible' THEN CONVERT(varchar(2), Visible)
                WHEN @OrderByColumn = 'AddedBy' THEN AddedBy           
                WHEN @OrderByColumn = 'Title' THEN Title
           END
      END DESC


  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 सर्वर कार्य इतिहास प्राप्त करने के 4 तरीके

  2. SSMS अब Azure डेटा स्टूडियो के साथ आता है

  3. माइक्रोसॉफ्ट एसक्यूएल सर्वर 2005/2008:एक्सएमएल बनाम टेक्स्ट/वर्कर डेटा प्रकार

  4. एसक्यूएल में शून्य त्रुटि से विभाजन से कैसे बचें?

  5. Microsoft SQL सर्वर त्रुटि 18456 का समस्या निवारण