# Kā lietot SQL ORDER BY

SQL komanda `ORDER BY` ļauj jums šķirot meklēšanas rezultātus atbilstoši savām individuālajām vajadzībām – gan augošā, gan dilstošā secībā. Datu šķirošana mērķa tabulā pēc rindām un kolonnām var padarīt rezultātus skaidrākus un vieglāk lasāmus. Tas savukārt optimizē un paātrina datu analīzi un vaicājumus sarežģītos datu kopumos.

## Kas ir SQL `ORDER BY`?

Izmantojot SQL `ORDER BY`, varat šķirot datus un rezultātus no vienkāršām vai sarežģītām datu kopām. Šī komanda ļauj noteikt, **kā dati tiks sakārtoti** mērķa tabulā. Turklāt varat norādīt, vai dati tiks šķiroti augošā vai dilstošā secībā. Tādējādi `ORDER BY` palīdz nodrošināt skaidrus un viegli lasāmus vaicājuma rezultātus.

Pēc noklusējuma `ORDER BY` rāda rezultātus augošā secībā, proti, no A līdz Z vai no mazākās līdz lielākajai vērtībai. Ja vēlaties rezultātus lejupslīdošā secībā, varat izmantot papildu atslēgvārdu `DESC`. Rezultātiem varat norādīt vienu vai vairākas mērķa kolonnas.

SQL `ORDER BY` ir svarīgs, lai veiktu **strukturētus un ātrus vaicājumus**. To bieži izmanto kopā ar SELECT, WHERE un citiem SQL operatoriem, kā arī funkcijām, piemēram, GROUP BY.

Tip Vēlaties labāk izprast [SQL](https://www.ionos.com/lv-lv/digitalguide/serveris/prasmes-un-zinasanas/kas-ir-sql/), bet nezināt, ar ko sākt? Mūsu [SQL ievads ar piemēriem](https://www.ionos.com/lv-lv/digitalguide/serveris/konfiguracija/sql-ievads-ar-piemeriem/) atvieglo šīs populārās datubāzu valodas apguvi.

## Kāda ir SQL `ORDER BY` sintakse?

SQL `ORDER BY` sintakse izskatās šādi:

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

Note Ja pēc `ORDER BY` ievadīsiet tikai vienu kolonnu, **rezultāti** tiks **sakārtoti pēc šīs kolonnas**. Ja ievadīsiet vairākas kolonnas, rezultāti tiks sakārtoti pēc A kolonnas. Ja A kolonā dažās rindās ir identiski ieraksti, šīs rindas tiks sakārtotas pēc B kolonnas.

Šo sintaksi var paplašināt, pievienojot papildu operatorus un parametrus. Piemēram, `WHERE` klauzulu var izmantot, lai definētu kritērijus, kas sašaurina vaicājuma rezultātus. `ORDER BY` un `WHERE` sintakse kopā izskatās šādi:

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

Jūs varat izmantot arī šādus parametrus:

- `SELECT`: Ar komandu SELECT varat norādīt, kurus datus vēlaties analizēt. Lai izgūtu visus datus, izmantojiet zvaigznīti `*`, vai arī ievadiet kolonnu nosaukumus, lai strādātu ar šīm kolonām.
- `FROM`: Norāda, no kuras tabulas vēlaties izgūt datus.
- `WHERE`: WHERE ir fakultatīva klauzula, kas ļauj definēt meklēšanas kritērijus, kuri sašaurinās rezultātus. `WHERE` klauzulā varat izmantot operatorus, piemēram, `=`, LIKE vai [NOT](https://www.ionos.com/lv-lv/digitalguide/serveris/konfiguracija/sql-not/).
- `ORDER BY`: Nosaka, pēc kuras kolonnas vēlaties šķirot rezultātus. Ja nepievienojat `ASC` vai `DESC`, rezultāti pēc noklusējuma tiks šķiroti augošā secībā.

Note Atkarībā no datu bāzes NULL vērtības `ORDER BY` šķirotas automātiski vai atbilstoši izvēlētajai šķirošanas secībai. SQLite, MySQL un SQL Server datu bāzēs NULL vērtības tiek uzskatītas par mazākajām vērtībām. Tas nozīmē, ka tās parādās augošā secībā sakārtoto rezultātu sākumā. Oracle un PostgreSQL datu bāzēs NULL vērtības tiek uzskatītas par lielākajām vērtībām. Tādējādi tās parādās augošā secībā sakārtoto rezultātu beigās.

## Kādiem mērķiem var izmantot SQL `ORDER BY`?

Šeit ir daži praktiski SQL `ORDER BY` lietošanas piemēri:

- Preču informācijas šķirošana pēc preces nosaukuma, kategorijas vai cenas
- Darījumu šķirošana pēc summas, datuma vai nosaukuma
- Pasūtījumu šķirošana pēc summas vai novērtējumiem
- Darbinieku šķirošana pēc algas, līgumiem, darba rezultātiem vai nodaļas
- Krājumu saraksta izveide pēc summas vai nosaukuma
- Sūtījumu šķirošana pēc pasta indeksa vai izsekošanas numura
- Klientu sarakstu šķirošana pēc reģiona vai vecuma

## SQL `ORDER BY` piemēri

Tagad pievērsīsimies trim piemēriem, kuros izmantots `ORDER BY`.

### Preču šķirošana pēc cenas

Šajā piemērā mēs sakārtosim preces no kategorijas „Mati” augošā secībā pēc cenas. Ar `FROM` un `WHERE` norādām, kuras preces vēlamies sakārtot. Ar `ORDER BY` un `ASC` norādām, ka vēlamies tās sakārtot augošā secībā pēc cenas. Sintakse izskatās šādi:

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

### Klientu filtrēšana

Pieņemsim, ka jūs strādājat ar tabulu „Klienti” un vēlaties sakārtot visus klientus no Apvienotās Karalistes pēc viņu vārdiem. Jūs vēlaties tos sakārtot apgrieztā alfabēta secībā no Z līdz A, tāpēc komandai `ORDER BY` pievienojat `DESC`.

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

### Šķirošana pēc vairākām kategorijām

Šajā piemērā jūs vēlaties sakārtot produktus no kategorijas „Elektronika” pēc pasūtījuma daudzuma. Ja pasūtījuma daudzumi ir vienādi, jūs vēlaties tos sakārtot pēc valsts, no kuras pasūtījums ir saņemts.

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

## Vai ir kādas alternatīvas SQL `ORDER BY`?

SQL valodā nav alternatīvu `ORDER BY` funkcijai ar tādu pašu darbību. Tomēr GROUP BY ir SQL komanda, ko bieži izmanto kopā ar `ORDER BY`. `GROUP BY` var izmantot, lai **grupētu ierakstus pēc kategorijām**, bet `ORDER BY` var šos ierakstus papildus kārtot.

**Piemērs**: pieņemsim, ka vēlaties sagrupēt klientu pasūtījumu apjomus pēc valstīm un pēc tam izmantot summēšanas funkciju AVG, lai šķirotu pēc vidējā pasūtījuma apjoma. Sintakse šim gadījumam izskatītos šādi:

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

Varat izmantot arī HAVING klauzulu, lai filtrētu sakārtotos ierakstus atbilstoši meklēšanas kritērijiem un nosacījumiem. `LIMIT` var ierobežot rezultātu kopu līdz noteiktam skaitam.


This is a markdown version of: [https://www.ionos.com/lv-lv/digitalguide/serveris/konfiguracija/sql-order-by/](https://www.ionos.com/lv-lv/digitalguide/serveris/konfiguracija/sql-order-by/) for AI/LLM consumption.