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.
Vēlaties labāk izprast SQL, bet nezināt, ar ko sākt? Mūsu SQL ievads ar piemēriem atvieglo šīs populārās datubāzu valodas apguvi.
Kāda ir SQL ORDER BY sintakse?
SQL ORDER BY sintakse izskatās šādi:
SELECT ColumnA, ColumnB, … or *
FROM Table
ORDER BY ColumnA, ColumnB, … (optional: ASC or DESC)sqlJa 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:
SELECT ColumnA, ColumnB, … or *
FROM Table
WHERE ColumnA = 'SearchCondition'
ORDER BY ColumnA, ColumnB, … (optional: ASC or DESC)sqlJū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.WHEREklauzulā varat izmantot operatorus, piemēram,=, LIKE vai NOT.ORDER BY: Nosaka, pēc kuras kolonnas vēlaties šķirot rezultātus. Ja nepievienojatASCvaiDESC, rezultāti pēc noklusējuma tiks šķiroti augošā secībā.
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:
SELECT *
FROM Products
WHERE Category = 'Hair'
ORDER BY Price ASC;sqlKlientu 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.
SELECT *
FROM Customers
WHERE Country = 'UK'
ORDER BY Name DESC;sqlŠķ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.
SELECT *
FROM Products
WHERE Category = 'Electronics'
ORDER BY OrderQuantity ASC, Country DESC;sqlVai 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:
SELECT Country, AVG(OrderQuantity)
FROM Customers
WHERE Category = 'Electronics'
GROUP BY Country
ORDER BY AVG(OrderQuantity) ASC;sqlVarat 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.