# Kako uporabljati SQL ORDER BY

Z ukazom SQL `ORDER BY` lahko rezultate iskanja razvrstite glede na svoje potrebe, in sicer v naraščajočem ali padajočem vrstnem redu. Razvrstitev podatkov v ciljni tabeli po vrsticah in stolpcih lahko naredi rezultate preglednejše in lažje berljive. To pa posledično optimizira in pospeši analizo podatkov ter poizvedbe v zapletenih podatkovnih nizih.

## Kaj je SQL `ORDER BY`?

Z uporabo SQL `ORDER BY` lahko razvrstite podatke in rezultate iz preprostih ali zapletenih podatkovnih nizov. Ta ukaz vam omogoča, da določite, **kako se podatki razvrstijo** v ciljni tabeli. Poleg tega lahko določite, ali naj se podatki razvrstijo v naraščajočem ali padajočem vrstnem redu. Tako vam `ORDER BY` pomaga zagotoviti jasne in pregledne rezultate poizvedb.

Privzeto `ORDER BY` prikaže rezultate v naraščajočem vrstnem redu, torej od A do Z ali od najmanjše do največje vrednosti. Če želite rezultate v padajočem vrstnem redu, lahko uporabite izbirno ključno besedo `DESC`. Za rezultate lahko določite enega ali več ciljnih stolpcev.

SQL `ORDER BY` je pomemben za izvajanje **strukturiranih in hitrih poizvedb**. Pogosto se uporablja skupaj s ključnimi besedami SELECT, WHERE in drugimi SQL-operaterji ter funkcijami, kot je GROUP BY.

Tip Želite bolje razumeti [jezik SQL](https://www.ionos.com/sl-si/digitalguide/streznik/znanje/kaj-je-sql/), vendar ne veste, kje začeti? Naš [uvod v jezik SQL s primeri](https://www.ionos.com/sl-si/digitalguide/streznik/nastavitve/uvod-v-sql-s-primeri/) vam olajša začetek učenja tega priljubljenega jezika za upravljanje podatkovnih baz.

## Kakšna je sintaksa jezika SQL `ORDER BY`?

Sintaksa jezika SQL `ORDER BY` je naslednja:

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

Note Če vnesete le en stolpec po `ORDER BY`, boste dobili **en stolpec z razvrščenimi rezultati**. Če vnesete več kot en stolpec, bodo rezultati razvrščeni na podlagi stolpca A. Če stolpec A v nekaterih vrsticah vsebuje enake vrednosti, bodo te vrstice razvrščene na podlagi stolpca B.

To sintakso lahko razširite z dodatnimi operatorji in parametri. Klavzulo `WHERE` lahko na primer uporabite za opredelitev meril, ki zožijo rezultate poizvedbe. Sintaksa `ORDER BY` v kombinaciji s `WHERE` je naslednja:

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

Uporabite lahko tudi naslednje parametre:

- `SELECT`: Z ukazom SELECT lahko določite, katere podatke želite analizirati. Z zvezdico `*` lahko poizvedujete celoten niz podatkov, ali pa vnesete imena stolpcev, da delate s temi stolpci.
- `FROM`: Določa, iz katere tabele želite poiskati podatke.
- `WHERE`: WHERE je neobvezna klavzula za opredelitev iskalnih meril, ki bodo zožila vaše rezultate. V klavzuli `WHERE` lahko uporabite operaterje, kot so `=`, LIKE ali [NOT](https://www.ionos.com/sl-si/digitalguide/streznik/nastavitve/sql-ne/).
- `ORDER BY`: Določa, po katerem stolpcu želite razvrstiti rezultate. Če ne dodate `ASC` ali `DESC`, bodo rezultati privzeto razvrščeni v naraščajočem vrstnem redu.

Note Glede na bazo podatkov `ORDER BY` vrednosti NULL razvrstijo samodejno ali v skladu z izbranim vrstnim redom. V SQLite, MySQL in SQL Serverju se vrednosti NULL obravnavajo kot najnižje vrednosti. To pomeni, da se v naraščajočem vrstnem redu rezultatov pojavijo na začetku. V Oracle in PostgreSQL se vrednosti NULL obravnavajo kot najvišje vrednosti. Zato se v naraščajočem vrstnem redu rezultatov pojavijo na koncu.

## Za kaj se lahko uporablja SQL `ORDER BY`?

Tukaj je nekaj primerov praktične uporabe SQL `ORDER BY`:

- Razvrščanje podatkov o izdelkih po imenu izdelka, kategoriji ali ceni
- Razvrščanje transakcij po znesku, datumu ali imenu
- Razvrščanje naročil po znesku ali ocenah
- Razvrščanje zaposlenih po plači, pogodbah, uspešnosti ali oddelku
- Seznam zaloge po znesku ali imenu
- Razvrščanje pošiljk po poštni številki ali številki za sledenje
- Razvrščanje seznamov strank po regiji ali starosti

## Primeri SQL `ORDER BY`

Sedaj si bomo ogledali 3 primere z uporabo `ORDER BY`.

### Razvrščanje izdelkov po ceni

V tem primeru bomo izdelke iz kategorije »Lasje« razvrstili po naraščajočem vrstnem redu glede na ceno. S `FROM` in `WHERE` določimo, katere izdelke želimo razvrstiti. S `ORDER BY` in `ASC` pa določimo, da jih želimo razvrstiti po naraščajočem vrstnem redu glede na ceno. Sintaksa je naslednja:

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

### Filtriranje strank

Recimo, da delate v tabeli z imenom »Stranke« in želite vse stranke iz Velike Britanije razvrstiti po imenih. Želite jih razvrstiti v obratnem abecednem vrstnem redu, od Z do A, zato k ukazu `ORDER BY` dodate `DESC`.

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

### Razvrščanje po več kategorijah

V tem primeru želite izdelke iz kategorije »Elektronika« razvrstiti glede na količino naročila. Če je količina naročila enaka, jih želite razvrstiti glede na državo, iz katere prihaja naročilo.

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

## Ali obstajajo alternative za SQL `ORDER BY`?

V jeziku SQL ni drugih ukazov z enako funkcijo kot `ORDER BY`. Vendar pa je GROUP BY ukaz v jeziku SQL, ki se pogosto uporablja v kombinaciji z `ORDER BY`. `GROUP BY` je mogoče **zapise razvrstiti v skupine na podlagi kategorij**, `ORDER BY` pa te zapise dodatno razvrsti.

**Primer**: Recimo, da želite količine naročil strank razvrstiti po državah in nato s pomočjo agregacijske funkcije AVG razvrstiti po povprečni količini naročila. Sintaksa za to bi bila naslednja:

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

Poleg tega lahko s klavzulo HAVING filtrirate razvrščene zapise na podlagi iskalnih meril in pogojev. `LIMIT` lahko omejite nabor rezultatov na določeno število.


This is a markdown version of: [https://www.ionos.com/sl-si/digitalguide/streznik/nastavitve/sql-order-by/](https://www.ionos.com/sl-si/digitalguide/streznik/nastavitve/sql-order-by/) for AI/LLM consumption.