私は、SQL内の複数の列、およびさまざまな方向でソートしようとしています。 column1
は降順、column2
は昇順にソートされます。
これどうやってするの?
ORDER BY column1 DESC, column2
これは、最初にcolumn1
(降順)で、次に2つ以上の行のcolumn2
フィールドが等しい場合は常にcolumn1
(昇順)ですべてをソートします。
他の答えは具体例を欠いています、それでここに行きます:
次の People テーブルを考えます。
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
複数の条件で複数の順序を使用できます。
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