sql एसक्यूएल एकाधिक कॉलम ऑर्डरिंग




sql-order-by (4)

मैं SQL में कई स्तंभों और विभिन्न दिशाओं में सॉर्ट करने का प्रयास कर रहा हूं। column1 को अवरोही, और column2 आरोही क्रमबद्ध किया जाएगा।

मैं यह कैसे कर सकता हूँ?


आप एकाधिक स्थितियों पर एकाधिक ऑर्डरिंग का उपयोग कर सकते हैं,

ORDER BY 
     (CASE 
        WHEN @AlphabetBy = 2  THEN [Drug Name]
      END) ASC,
    CASE 
        WHEN @TopBy = 1  THEN [Rx Count]
        WHEN @TopBy = 2  THEN [Cost]
        WHEN @TopBy = 3  THEN [Revenue]
    END DESC 

ORDER BY column1 DESC, column2

यह पहले column1 (अवरोही) द्वारा column1 , और उसके बाद column2 (आरोही, जो डिफ़ॉल्ट है) जब भी दो पंक्तियों के लिए column1 फ़ील्ड बराबर होते हैं।


अन्य उत्तरों में एक ठोस उदाहरण की कमी है, इसलिए यहां यह जाता है:

निम्नलिखित लोगों की तालिका को देखते हुए:

 FirstName |  LastName   |  YearOfBirth
----------------------------------------
  Thomas   | Alva Edison |   1847
  Benjamin | Franklin    |   1706
  Thomas   | More        |   1478
  Thomas   | Jefferson   |   1826

यदि आप नीचे दी गई क्वेरी निष्पादित करते हैं:

SELECT * FROM People ORDER BY FirstName DESC, YearOfBirth ASC

परिणाम सेट इस तरह दिखेगा:

 FirstName |  LastName   |  YearOfBirth
----------------------------------------
  Thomas   | More        |   1478
  Thomas   | Jefferson   |   1826
  Thomas   | Alva Edison |   1847
  Benjamin | Franklin    |   1706

SELECT  *
FROM    mytable
ORDER BY
        column1 DESC, column2 ASC




sql-order-by