sql >> Databáze >  >> RDS >> Database

SQL ORDER BY

POŘADÍ SQL PODLE

SQL ORDER BY klauzule se používá k třídění dat uložených v tabulkách v databázi . Řazení lze provést vzestupně, sestupně nebo na základě více sloupců tabulky .

Obecně je výchozí pořadí řazení vzestupné.

SELECT expressions
 FROM tables
 WHERE conditions
 ORDER BY expression ASC | DESC; 

Následuje syntaxe obecné klauzule ORDER BY:

Příklad:

Podívejme se na následující zákazníky tabulka.

ID NAME VĚK ADRESA PLAT
1 Himani gupta 21 Modinagar 22 000
2 Shiva tiwari 22 Bhópál 21 000
3 Ajeet bhargav 45 Meerut 65 000
4 Ritesh yadav 36 Azamgarh 26 000
5 Balwant singh 45 Váránasí 36 000
6 Mahesh sharma 26 Mathura 22 000
 SELECT * 
 FROM Customers
 ORDER BY NAME, SALARY; 

Výše uvedený dotaz seřadí všechny záznamy ve vzestupném pořadí na základě sloupců JMÉNO a PLAT.

Výstup:

ID NAME VĚK ADRESA PLAT
3 Ajeet bhargav 45 Meerut 65 000
5 Balwant singh 45 Váránasí 36 000
1 Himani gupta 21 Modinagar 22 000
6 Mahesh sharma 26 Mathura 22 000
4 Ritesh yadav 36 Azamgarh 26 000
2 Shiva tiwari 22 Bhópál 21 000
SELECT *
 FROM CUSTOMERS
 ORDER BY NAME DESC; 

Výše uvedený dotaz seřadí všechny záznamy v tabulce sestupně na základě sloupce NAME.

Výstup:

ID NAME VĚK ADRESA PLAT
2 Shiva tiwari 22 Bhópál 21 000
4 Ritesh yadav 36 Azamgarh 26 000
6 Mahesh sharma 26 Mathura 22 000
1 Himani gupta 21 Modinagar 22 000
5 Balwant singh 45 Váránasí 36 000
3 Ajeet bhargav 45 Meerut 65 000

Klauzule SQL ORDER BY obsahuje různá témata. Jmenovitě jsou to:

  • POŘADÍ SQL PODLE ASC – Seřadí data vzestupně
  • SQL ORDER BY DESC – Seřadí data sestupně
  • POŘADÍ SQL NÁHODNĚ – Třídí náhodná data
  • POŘADÍ SQL PODLE LIMITU – Vybírá omezená data z databáze
  • POŘADÍ SQL PODLE více sloupců – Seřadí data na základě více sloupců.

Pojďme si každou z nich podrobně probrat.

POŘADÍ SQL PODLE ASC

POŘADÍ SQL PODLE ASC klauzule seřadí data ve vzestupném pořadí na základě některých sloupců. Obecně platí, že výchozí pořadí řazení je vzestupné.

Příklad:

Podívejme se na následující zákazníky tabulka.

ID NAME VĚK ADRESA PLAT
1 Himani gupta 21 Modinagar 22 000
2 Shiva tiwari 22 Bhópál 21 000
3 Ajeet bhargav 45 Meerut 65 000
4 Ritesh yadav 36 Azamgarh 26 000
5 Balwant singh 45 Váránasí 36 000
6 Mahesh sharma 26 Mathura 22 000
SELECT * 
 FROM Customers
 ORDER BY NAME, SALARY; 

Výše uvedený dotaz seřadí všechny záznamy ve vzestupném pořadí na základě sloupců JMÉNO a PLAT.

Výstup:

ID NAME VĚK ADRESA PLAT
3 Ajeet bhargav 45 Meerut 65 000
5 Balwant singh 45 Váránasí 36 000
1 Himani gupta 21 Modinagar 22 000
6 Mahesh sharma 26 Mathura 22 000
4 Ritesh yadav 36 Azamgarh 26 000
2 Shiva tiwari 22 Bhópál 21 000

POŘADÍ SQL PODLE DESC

Klauzule SQL ORDER BY DESC třídí data v sestupném pořadí na základě některých sloupců.

Příklad:

Podívejme se na následující zákazníky tabulka.

ID NAME VĚK ADRESA PLAT
1 Himani gupta 21 Modinagar 22 000
2 Shiva tiwari 22 Bhópál 21 000
3 Ajeet bhargav 45 Meerut 65 000
4 Ritesh yadav 36 Azamgarh 26 000
5 Balwant singh 45 Váránasí 36 000
6 Mahesh sharma 26 Mathura 22 000
SELECT *
 FROM CUSTOMERS
 ORDER BY NAME DESC; 

Výše uvedený dotaz seřadí všechny záznamy v tabulce sestupně na základě sloupce NAME.

Výstup:

ID NAME VĚK ADRESA PLAT
2 Shiva tiwari 22 Bhópál 21 000
4 Ritesh yadav 36 Azamgarh 26 000
6 Mahesh sharma 26 Mathura 22 000
1 Himani gupta 21 Modinagar 22 000
5 Balwant singh 45 Váránasí 36 000
3 Ajeet bhargav 45 Meerut 65 000

POŘADÍ SQL PODLE LIMITU

Klauzule SQL ORDER BY LIMIT pomáhá při získávání určitého počtu záznamů z databázové tabulky. Obecně se používá v situacích, kdy existuje velké množství n-tic, které splňují danou podmínku. Nastavuje horní limit počtu záznamů, které jsou načítány.

Chcete-li použít klauzuli LIMIT v SQL, musíte použít ROWNUM klauzule s tím.

Poznámka:Je třeba poznamenat, že klauzule LIMIT není podporována všemi verzemi SQL.

Tuto klauzuli lze zadat pomocí SQL 2008 OFFSET nebo FETCH FIRST klauzule .

Příklad:

Podívejme se na následujícího Studenta tabulka.

RollNo Jméno Známka
12001 Aditya 9
12002 Sahil 6
12003 Hema 8
12004 Robin 9
12005 Sita 7
12006 Anne 10
12007 Yusuf 7
12008 Alex 5
SELECT *
 FROM Student
 LIMIT 5; 

Výše uvedený dotaz vrátí pouze prvních 5 studentů z tabulky Student.

Výstup:

12001 Aditya 9
12002 Sahil 6
12003 Hema 8
12004 Robin 9
12005 Sita 7

Klauzuli LIMIT lze také použít s klauzulí ORDER BY.

SELECT *
 FROM Student
 ORDER BY Grade DESC
 LIMIT 3; 

Výše uvedený dotaz vrátí 3 nejlepší studenty s nejvyššími známkami v sestupném pořadí.

Výstup:

12006 Anne 10
12001 Aditya 9
12004 Robin 9

Operátor LIMIT je užitečný zejména v situacích, kdy je třeba získat omezená data bez použití jakýchkoli podmíněných příkazů.

Operátor LIMIT lze také použít s operátorem OFFSET.

LIMIT s OFFSET

Je třeba poznamenat, že hodnota OFFSET by měla být větší než nula a nemůže být negativní. Pokud je zadána záporná hodnota, vrátí chybu.

Příklad:

Podívejme se na stejnou studentskou tabulku.

RollNo Jméno Známka
12001 Aditya 9
12002 Sahil 6
12003 Hema 8
12004 Robin 9
12005 Sita 7
12006 Anne 10
12007 Yusuf 7
12008 Alex 5
SELECT *
FROM Student
LIMIT 5 OFFSET 2
ORDER BY RollNo;

Tento dotaz vrátí prvních 5 záznamů tabulky Student kromě 2 nejlepších záznamů.

Výstup:

RollNo Jméno Známka
12003 Hema 8
12004 Robin 9
12005 Sita 7
12006 Anne 10
12007 Yusuf 7

OMEZIT VŠE

Existuje další klauzule podobná LIMIT známé jako LIMIT ALL . Klauzule LIMIT ALL nestanoví žádné omezení a vrátí všechny položky tabulky.

Příklad:

Podívejme se znovu na stejnou Studentskou tabulku.

RollNo Jméno Známka
12001 Aditya 9
12002 Sahil 6
12003 Hema 8
12004 Robin 9
12005 Sita 7
12006 Anne 10
12007 Yusuf 7
12008 Alex 5

Dotaz:

SELECT *
FROM Student
LIMIT ALL;
RollNo Jméno Známka
12001 Aditya 9
12002 Sahil 6
12003 Hema 8
12004 Robin 9
12005 Sita 7
12006 Anne 10
12007 Yusuf 7
12008 Alex 5

POŘADÍ SQL PODLE více sloupců

POŘADÍ SQL PODLE více sloupců vrátí položky dat ve sloupci tak, že je seřadí pomocí více sloupců, které byly uvedeny v dotazu.

Seřadí data na základě pořadí názvů sloupců, které byly dodány po klauzuli ORDER BY. Názvy sloupců by měly být přidány v odpovídajícím pořadí, v jakém uživatel požaduje řazení.

Názvy více sloupců lze přidat tak, že je oddělíte čárkou (,). K určení pořadí řazení lze také použít klíčová slova ASC nebo DESC.

Příklad:

Podívejme se na následujícího Zaměstnance tabulka se čtyřmi sloupci, jmenovitě id, first_name, last_name a plat.

id first_name last_name plat
1 Lisa Ulman 3000
2 Ada Muller 2400
3 Thomas Zelená 2400
4 Michael Muller 3000
5 Marie Zelená 2400

Dotaz:

SELECT id,  
 first_name,
 last_name,
 salary
 FROM employee
 ORDER BY salary DESC, last_name; 

Výstup:

id first_name last_name plat
4 Michael M uller 3000
1 Lisa U lman 3000
3 Thomas G reen 2400
5 Marie G reen 2400
2 Ada M uller 2400

Výstup byl tedy nejprve seřazen podle platu v sestupném pořadí a poté podle příjmení ve vzestupném pořadí. Je třeba poznamenat, že pokud není uvedeno ASC nebo DESC, ve výchozím nastavení seřadí oba sloupce vzestupně.

Závěr

Výše jsou tedy některé z nejdůležitějších a často používaných klauzulí ORDER BY, které vývojáři denně používají k provádění specifických operací s databází a získávání dat. Tyto klauzule mohou být použity jednotlivě nebo mohou být použity společně, kombinovaným způsobem, k provádění databázových operací.


  1. EF 6 - Jak správně provádět paralelní dotazy

  2. ERROR 2006 (HY000):Server MySQL odešel

  3. Jak zálohovat/obnovit MySQL/MariaDB a PostgreSQL pomocí nástrojů „Automysqlbackup“ a „Autopostgresqlbackup“

  4. Jak odstranit hlavní mezery v SQL Server – LTRIM()