Я намагаюся сортувати за кількома стовпцями як у SQL, так і в різних напрямках. column1буде відсортовано по убуванню та column2зростанню.
Як я можу це зробити?
Я намагаюся сортувати за кількома стовпцями як у SQL, так і в різних напрямках. column1буде відсортовано по убуванню та column2зростанню.
Як я можу це зробити?
Відповіді:
ORDER BY column1 DESC, column2
Це сортує все за column1(спаданням) спочатку, а потім column2(за зростанням, що є за замовчуванням), коли column1поля для двох або більше рядків рівні.
column1спочатку, а потім, column2коли 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
1.Firstname asc, Lastname desc, yearOfBirst asc and 2.Firstname asc, Lastname desc, yearOfBirst desc Чи є спосіб, що ми можемо це подолати?
FirstName, LastNameзаписів з чіткими ознакамиYearOfBirth
Упорядкування декількох стовпців залежить від відповідних значень обох стовпців: Ось мій приклад таблиці, де є два стовпчики з іменами Alphabets and Numbers, а значення цих двох стовпців - порядки asc та desc .
Тепер я виконую Order By у цих двох стовпцях, виконуючи команду нижче:
Тепер знову вставляю нові значення в ці два стовпці, де значення алфавіту в порядку ASC :
і стовпці в таблиці Приклад виглядають приблизно так. Тепер знову виконайте ту саму операцію:
Ви можете бачити, що значення в першому стовпці знаходяться в порядку desc, але другий стовпець не в порядку ASC.
(g, 10),(g,12). Потім запустіть запит на замовлення, ви отримаєте другий стовпець як ASCзамовлення (це означаєg-10,g-11,g-12)
Ви можете використовувати кілька замовлень у кількох умовах,
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