Ordine di in SQL

Ordine di in SQL
Questo tutorial ti aiuterà a comprendere l'ordine per clausola e come usarlo nelle domande basate su ANSI SQL. Nota: questo tutorial utilizza ANSI SQL o SQL standard. Tuttavia, l'ordine per clausola viene importato da molti motori di database. Pertanto, è possibile utilizzare questo tutorial per implementare l'ordine di MySQL, SQL Server, PostgreSQL, ecc.

SQL Server Order da

L'ordine per clausola in SQL consente di ordinare il risultato di una query in base a una determinata condizione in ordine crescente o discendente. Nella maggior parte dei casi, troverai l'ordine per clausola utilizzato nelle dichiarazioni selezionate, ma può essere incluso in altre domande. Quanto segue mostra la sintassi dell'ordine per clausola in SQL.

Ordine per espressione
[ASC | Desc]
[Nulls prima | Nulls ultimo]
[, ...]

L'ordine per clausola consente di specificare una colonna o un'espressione utilizzata come criteri di ordinamento.

L'ASC | I parametri DESC definiscono l'ordine di ordinamento, con ASC che rappresenta l'ordine ascendente e Des che indica l'ordine decrescente. L'ordine per clausola ordinerà impostazione predefinita i valori nell'ordine ascendente.

I nulls prima | Le ultime clausole NULLS raccontano l'ordine per clausola se includere i valori null prima dei valori non null o non null.

Esempio di utilizzo

Esploriamo alcuni esempi che dimostrano l'uso dell'ordine per clausola.

Esempio 1 - Uso di base

L'esempio seguente mostra come utilizzare l'ordine per clausola con un'istruzione selezionata.

SELEZIONARE
Col1,
Col2
DA (
SELEZIONARE
1 come Col1,
Vero come Col2
Unione tutto
SELEZIONARE
10,
VERO
Unione tutto
SELEZIONARE
NULLO,
Falso)
ORDINATO DA
Col1;

In questo caso, la query contiene due colonne, ciascuna con un valore numerico, booleano o nullo. Quindi utilizziamo l'ordine per clausola per ordinare i valori nell'ordine ascendente.

L'output risultante è come mostrato:

Col1 Col2
NULL FALSE
1 vero
10 vero

Per ordinare i valori in ordine decrescente, possiamo aggiungere la parola chiave DESC:

SELEZIONARE
Col1,
Col2
DA (
SELEZIONARE
1 come Col1,
Vero come Col2
Unione tutto
SELEZIONARE
10,
VERO
Unione tutto
SELEZIONARE
NULLO,
Falso)
ORDINATO DA
Col1 Desc;

In questo caso, la query dovrebbe restituire quanto segue:

Col1 Col2
10 vero
1 vero
NULL FALSE

Usando la prima clausola NULLS, è anche possibile ordinare per ordine decrescente e consentire ai valori null di essere inclusi prima.

Esempio:

SELEZIONARE
Col1,
Col2
DA (
SELEZIONARE
1 come Col1,
Vero come Col2
Unione tutto
SELEZIONARE
10,
VERO
Unione tutto
SELEZIONARE
NULLO,
Falso)
ORDINATO DA
Col1 Desc Nulls per primo;

Output risultante:

Col1 Col2
NULL FALSE
10 vero
1 vero

In questo caso, il valore null viene considerato prima, quindi altri valori sono ordinati in ordine decrescente.

Esempio 2 - Utilizzo dell'ordine per clausola con la tabella del database

L'esempio seguente mostra righe nella tabella seguente usando l'ordine per clausola.

Per ordinare le righe in base al produttore, possiamo eseguire la query come segue:

Selezionare * dall'ordine dei prodotti per produttore;

Per impostazione predefinita, la query ordinerà i valori in ordine crescente come mostrato:

Per ordinare i valori in ordine decrescente, eseguire quanto segue:

Seleziona * dall'ordine dei prodotti per produttore Desc;

Produzione:

Conclusione

In questo post, abbiamo discusso di come utilizzare l'ordine per clausola in SQL standard, permettendoti di ordinare le righe in un risultato in ordine crescente o discendente.