# Kuidas kasutada SQL-i ORDER BY-klauslit

SQL-i käsk `ORDER BY` võimaldab teil sorteerida otsingutulemusi vastavalt oma vajadustele kas kasvavas või kahanevas järjekorras. Sihttabeli andmete sorteerimine ridadesse ja veergudesse muudab tulemused selgemaks ja loetavamaks. See omakorda optimeerib ja kiirendab andmete analüüsi ning päringuid keerulistes andmekogumites.

## Mis on SQL `ORDER BY`?

SQL `ORDER BY` abil saate sorteerida andmeid ja tulemusi nii lihtsate kui ka keerukate andmekogumite puhul. Selle käsuga saate määrata, **kuidas andmed** sihttabelis **järjestatakse**. Lisaks saate määrata, kas andmed sorteeritakse kasvavas või kahanevas järjekorras. Seega aitab `ORDER BY` tagada selged ja kergesti loetavad päringutulemused.

Vaikimisi kuvab `ORDER BY` tulemused kasvavas järjekorras, st A–Z või väikseimast suurima väärtuseni. Kui soovid tulemusi kahanevas järjekorras, võid kasutada valikulist märksõna `DESC`. Saad tulemuste jaoks määrata ühe või mitu sihtveergu.

SQL `ORDER BY` on oluline **korrapäraste ja kiirete päringute** tegemiseks. Seda kasutatakse sageli koos SELECT-, WHERE- ja muude SQL-operaatorite ning funktsioonidega, nagu näiteks GROUP BY.

Tip Soovid [SQL-ist](https://www.ionos.com/et-ee/digitalguide/server/oskusteave/mis-on-sql/) paremini aru saada, kuid ei tea, kust alustada? Meie [näidetega varustatud SQL-i sissejuhatus](https://www.ionos.com/et-ee/digitalguide/server/seadistused/sql-i-sissejuhatus-naeidetega/) muudab selle populaarse andmebaasikeele õppimise alustamise lihtsaks.

## Milline on SQL `ORDER BY` süntaks?

SQL `ORDER BY` süntaks on järgmine:

```sql
SELECT  ColumnA, ColumnB, …  or *
FROM  Table
ORDER BY  ColumnA, ColumnB, …  (optional: ASC or DESC)
```

Note Kui sisestate pärast `ORDER BY` ainult ühe veeru, saate **ühe veeru sorteeritud tulemustega**. Kui sisestate rohkem kui ühe veeru, sorteeritakse tulemused veeru A järgi. Kui veerus A on mõnes reas identsed kanded, sorteeritakse need read veeru B järgi.

Seda süntaksit saab täiendada täiendavate operaatorite ja parameetritega. Näiteks klauslit `WHERE` saab kasutada päringutulemuste kitsendamiseks vajalike kriteeriumide määratlemiseks. Süntaks, mis ühendab `ORDER BY` ja `WHERE`, näeb välja järgmine:

```sql
SELECT  ColumnA, ColumnB, …  or *
FROM  Table
WHERE  ColumnA  =  'SearchCondition'
ORDER BY  ColumnA, ColumnB, …  (optional: ASC or DESC)
```

Võite kasutada ka järgmisi parameetreid:

- `SELECT`: Saad kasutada käsku SELECT, et määrata, milliseid andmeid soovid analüüsida. Kasuta tärni `*`, et pärida kogu andmekogumit, või sisesta veergude nimed, et töötada just nende veergudega.
- `FROM`: Määrab, millisest tabelist soovite andmeid pärida.
- `WHERE`: WHERE on valikuline klausel, millega määratakse otsingukriteeriumid, mis kitsendavad tulemusi. `WHERE` saate kasutada operaatoreid nagu `=`, LIKE või [NOT](https://www.ionos.com/et-ee/digitalguide/server/seadistused/sql-not/).
- `ORDER BY`: Määrab, millise veeru järgi soovite tulemusi sorteerida. Kui te `ASC` või `DESC` ei lisa, sorteeritakse tulemused vaikimisi kasvavas järjekorras.

Note Sõltuvalt andmebaasist sorteerib `ORDER BY` NULL-väärtusi automaatselt või vastavalt valitud sorteerimisjärjekorrale. SQLite’is, MySQLis ja SQL Serveris käsitletakse NULL-väärtusi madalaimate väärtustena. See tähendab, et need kuvatakse kasvavas tulemuste järjestuses alguses. Oracle’is ja PostgreSQLis käsitletakse NULL-väärtusi kõrgeimate väärtustena. Seega kuvatakse need kasvavas tulemuste järjestuses lõpus.

## Milleks saab SQL `ORDER BY` kasutada?

Siin on mõned SQL `ORDER BY` praktilised kasutusnäited:

- Tooteteabe sorteerimine tootenime, kategooria või hinna järgi
- Tehingute sorteerimine summa, kuupäeva või nime järgi
- Tellimuste sorteerimine summa või hinnangute järgi
- Töötajate sorteerimine palga, lepingute, tulemuslikkuse või osakonna järgi
- Varude loetlemine summa või nime järgi
- Saadetiste sorteerimine postikoodi või jälgimisnumbri järgi
- Kliendinimekirjade sorteerimine piirkonna või vanuse järgi

## Näited SQL `ORDER BY` kohta

Nüüd vaatame kolme näidet, milles kasutatakse `ORDER BY`.

### Toodete järjestamine hinna järgi

Selles näites sorteerime kategooria „Juuksed” tooted hinna järgi kasvavas järjekorras. Numbritega `FROM` ja `WHERE` määrame, milliseid tooteid soovime sorteerida. Numbritega `ORDER BY` ja `ASC` määrame, et soovime neid sorteerida hinna järgi kasvavas järjekorras. Süntaks on järgmine:

```sql
SELECT  *
FROM  Products
WHERE  Category  = 'Hair'
ORDER BY  Price  ASC;
```

### Klientide filtreerimine

Oletame, et töötate tabelis nimega „Kliendid” ja soovite järjestada kõik Ühendkuningriigist pärit kliendid nende nime järgi. Soovite neid järjestada tähestikulises vastupidises järjekorras Z-st A-ni, seega lisate käskule `ORDER BY` `DESC`.

```sql
SELECT  *
FROM  Customers
WHERE  Country = 'UK'
ORDER BY  Name  DESC;
```

### Sorteerimine mitme kategooria järgi

Selles näites soovid sorteerida kategooria „Elektroonika” tooteid tellimuse koguse järgi. Kui tellimuste kogused on ühesugused, soovid neid sorteerida selle järgi, millisest riigist tellimus pärineb.

```sql
SELECT  *
FROM  Products
WHERE  Category  =  'Electronics'
ORDER BY  OrderQuantity ASC,  Country  DESC;
```

## Kas SQL `ORDER BY`-le on alternatiive?

SQL-is ei ole `ORDER BY` samasuguse funktsiooniga alternatiive. Siiski on GROUP BY SQL-käsk, mida kasutatakse sageli koos `ORDER BY`. `GROUP BY` saab **kirjeid rühmitada kategooriate järgi** ning `ORDER BY` saab neid kirjeid lisaks sorteerida.

**Näide**: Oletame, et soovite rühmitada klientide tellimuste koguseid riigi järgi ja seejärel kasutada koondfunktsiooni AVG, et järjestada need keskmise tellimuse koguse järgi. Selleks oleks süntaks järgmine:

```sql
SELECT  Country, AVG(OrderQuantity)
FROM  Customers
WHERE  Category = 'Electronics'
GROUP BY  Country
ORDER BY  AVG(OrderQuantity) ASC;
```

Samuti saab HAVING-lauset kasutada, et filtreerida järjestatud kirjeid otsingukriteeriumide ja tingimuste alusel. `LIMIT` abil saab tulemusjoukku piirata teatud arvuni.


This is a markdown version of: [https://www.ionos.com/et-ee/digitalguide/server/seadistused/sql-order-by/](https://www.ionos.com/et-ee/digitalguide/server/seadistused/sql-order-by/) for AI/LLM consumption.