Ordinamento di più colonne SQL

Sto cercando di ordinare per più colonne in SQL e in diverse direzioni. column1 sarebbe ordinata decrescente e column2 crescente.

Come posso fare questo?

 ORDER BY column1 DESC, column2 

Questo ordina tutto per column1 (discendente) prima e poi per column2 (crescente, che è l’impostazione predefinita) ogni volta che i campi colonna1 per due o più righe sono uguali.

Le altre risposte mancano di un esempio concreto, quindi ecco qui:

Data la seguente tabella Persone :

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

Se esegui la query qui sotto:

 SELECT * FROM People ORDER BY FirstName DESC, YearOfBirth ASC 

Il set di risultati sarà simile a questo:

  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 

L’ordinamento di più colonne dipende dai valori corrispondenti di entrambe le colonne: Ecco l’esempio di tabella in cui due colonne sono denominate con Alfabeti e Numeri e i valori in queste due colonne sono ordini asc e desc .

inserisci la descrizione dell'immagine qui

Ora eseguo Order By in queste due colonne eseguendo il comando seguente:

inserisci la descrizione dell'immagine qui

Ora di nuovo inserisco nuovi valori in queste due colonne, dove il valore dell’alfabeto in ordine ASC :

inserisci la descrizione dell'immagine qui

e le colonne nella tabella di esempio hanno questo aspetto. Ora esegui nuovamente la stessa operazione:

inserisci la descrizione dell'immagine qui

È ansible visualizzare i valori nella prima colonna in ordine decrescente, ma la seconda colonna non è in ordine ASC.

È ansible utilizzare più ordini su più condizioni,

 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