SQL BESTIL EFTER
SQL ORDER BY klausul bruges til at sortere de data, der er gemt i tabeller i databasen . Sorteringen kan udføres på en stigende, faldende måde eller baseret på flere kolonner i tabellen .
Generelt er standardsorteringsrækkefølgen stigende.
SELECT expressions FROM tables WHERE conditions ORDER BY expression ASC | DESC;
Følgende er syntaksen for en generel ORDER BY-sætning:
Eksempel:
Lad os overveje følgende kunder tabel.
ID | NAVN | ALDER | ADRESSE | LØN |
1 | Himani gupta | 21 | Modinagar | 22000 |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
3 | Ajeet bhargav | 45 | Meerut | 65.000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
SELECT * FROM Customers ORDER BY NAME, SALARY;
Ovenstående forespørgsel vil sortere alle posterne i stigende rækkefølge baseret på kolonnerne NAVN og LØN.
Output:
ID | NAVN | ALDER | ADRESSE | LØN |
3 | Ajeet bhargav | 45 | Meerut | 65.000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
1 | Himani gupta | 21 | Modinagar | 22000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
SELECT * FROM CUSTOMERS ORDER BY NAME DESC;
Ovenstående forespørgsel vil sortere alle poster i tabellen på en faldende måde baseret på kolonnen NAME.
Output:
ID | NAVN | ALDER | ADRESSE | LØN |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
1 | Himani gupta | 21 | Modinagar | 22000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
3 | Ajeet bhargav | 45 | Meerut | 65.000 |
Der er forskellige emner under SQL ORDER BY klausul. De er nemlig:
- SQL-ORDER BY ASC – Sorterer dataene på stigende måde
- SQL-ORDER BY DESC – Sorterer dataene i faldende måde
- SQL-ORDER TILFÆLDIGT – Sorterer tilfældige data
- SQL-ORDER BY LIMIT – Vælger begrænsede data fra databasen
- SQL-ORDER EFTER flere kolonner – Sorterer data baseret på flere kolonner.
Lad os diskutere hver af dem i detaljer.
SQL-ORDER BY ASC
SQL-ORDER BY ASC klausul sorterer dataene i stigende rækkefølge baseret på nogle kolonner. Generelt er standardsorteringsrækkefølgen stigende.
Eksempel:
Lad os overveje følgende kunder tabel.
ID | NAVN | ALDER | ADRESSE | LØN |
1 | Himani gupta | 21 | Modinagar | 22000 |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
3 | Ajeet bhargav | 45 | Meerut | 65.000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
SELECT * FROM Customers ORDER BY NAME, SALARY;
Ovenstående forespørgsel vil sortere alle posterne i stigende rækkefølge baseret på kolonnerne NAVN og LØN.
Output:
ID | NAVN | ALDER | ADRESSE | LØN |
3 | Ajeet bhargav | 45 | Meerut | 65.000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
1 | Himani gupta | 21 | Modinagar | 22000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
SQL-ORDER BY DESC
SQL ORDER BY DESC-udtrykket sorterer dataene i faldende rækkefølge baseret på nogle kolonner.
Eksempel:
Lad os overveje følgende kunder tabel.
ID | NAVN | ALDER | ADRESSE | LØN |
1 | Himani gupta | 21 | Modinagar | 22000 |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
3 | Ajeet bhargav | 45 | Meerut | 65.000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
SELECT * FROM CUSTOMERS ORDER BY NAME DESC;
Ovenstående forespørgsel vil sortere alle poster i tabellen på en faldende måde baseret på kolonnen NAME.
Output:
ID | NAVN | ALDER | ADRESSE | LØN |
2 | Shiva tiwari | 22 | Bhopal | 21000 |
4 | Ritesh yadav | 36 | Azamgarh | 26000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
1 | Himani gupta | 21 | Modinagar | 22000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
3 | Ajeet bhargav | 45 | Meerut | 65.000 |
SQL ORDER BY LIMIT
SQL ORDER BY LIMIT-sætningen hjælper med at hente et specifikt antal poster fra databasetabellen. Det bruges generelt i situationer, hvor der er et stort antal tupler, der opfylder den givne betingelse. Den sætter en øvre grænse for antallet af poster, der hentes.
For at bruge LIMIT-sætningen i SQL, skal man bruge ROWNUM klausul med det.
Bemærk:Det skal bemærkes, at LIMIT-sætningen ikke understøttes af alle SQL-versioner.
Denne klausul kan specificeres ved hjælp af SQL 2008 OFFSET eller FETCH FIRST-sætninger .
Eksempel:
Lad os overveje følgende elev tabel.
RulleNr. | Navn | Karakter |
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;
Ovenstående forespørgsel vil kun returnere de 5 bedste elever fra elevtabellen.
Output:
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
LIMIT-klausulen kan også bruges sammen med ORDER BY-klausulen.
SELECT * FROM Student ORDER BY Grade DESC LIMIT 3;
Ovenstående forespørgsel vil returnere de 3 bedste elever med de højeste karakterer i faldende rækkefølge.
Output:
12006 | Anne | 10 |
12001 | Aditya | 9 |
12004 | Robin | 9 |
LIMIT-operatoren er især nyttig i situationer, hvor begrænsede data skal hentes uden brug af betingede erklæringer.
LIMIT-operatoren kan også bruges sammen med OFFSET-operatoren.
LIMIT med OFFSET
Det skal bemærkes, at OFFSET-værdien skal være større end nul , og det kan ikke være negativt. Hvis en negativ værdi er angivet, vil den returnere en fejl.
Eksempel:
Lad os overveje den samme elevtabel.
RulleNr. | Navn | Karakter |
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;
Denne forespørgsel returnerer de øverste 5 poster i elevtabellen, eksklusive de to øverste poster.
Output:
RulleNr. | Navn | Karakter |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anne | 10 |
12007 | Yusuf | 7 |
BEGRÆNS ALLE
Der er en anden klausul, der ligner LIMIT kendt som LIMIT ALL . LIMIT ALL-sætningen vil ikke sætte nogen grænse og vil returnere alle indtastninger i tabellen.
Eksempel:
Lad os igen overveje den samme elevtabel.
RulleNr. | Navn | Karakter |
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anne | 10 |
12007 | Yusuf | 7 |
12008 | Alex | 5 |
Forespørgsel:
SELECT * FROM Student LIMIT ALL;
RulleNr. | Navn | Karakter |
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anne | 10 |
12007 | Yusuf | 7 |
12008 | Alex | 5 |
SQL-ORDNER EFTER flere kolonner
SQL ORDER BY Multiple Columns returnerer dataindtastningerne i kolonnen ved at sortere dem ved hjælp af flere kolonner, der er angivet i forespørgslen.
Det vil sortere data baseret på rækkefølgen af kolonnenavnene, som er blevet leveret efter ORDER BY-klausulen. Navnet på kolonnerne skal tilføjes i den tilsvarende rækkefølge, som brugeren ønsker, at sorteringen skal ske.
Flere kolonnenavne kan tilføjes ved at adskille dem med et komma (,). ASC- eller DESC-nøgleordene kan også bruges til at angive rækkefølgen af sorteringen.
Eksempel:
Lad os overveje følgende medarbejder tabel med fire kolonner, nemlig id, fornavn, efternavn og løn.
id | fornavn | efternavn | løn |
1 | Lisa | Ulman | 3000 |
2 | Ada | Muller | 2400 |
3 | Thomas | Grøn | 2400 |
4 | Michael | Muller | 3000 |
5 | Mary | Grøn | 2400 |
Forespørgsel:
SELECT id, first_name, last_name, salary FROM employee ORDER BY salary DESC, last_name;
Output:
id | fornavn | efternavn | løn |
4 | Michael | M uller | 3000 |
1 | Lisa | U lman | 3000 |
3 | Thomas | G reen | 2400 |
5 | Mary | G reen | 2400 |
2 | Ada | M uller | 2400 |
Derfor er output først blevet sorteret efter løn i faldende rækkefølge og derefter efter efternavn i stigende rækkefølge. Det skal bemærkes, at hvis ASC eller DESC ikke er nævnt, vil det som standard sortere begge kolonner i stigende rækkefølge.
Konklusion
Så ovenfor er nogle af de vigtigste og mest brugte ORDER BY-klausuler, der bruges af udviklere dagligt for at udføre specifikke operationer på databasen og hente data. Disse klausuler kan bruges individuelt, eller de kan også bruges sammen, på en kombineret måde, til at udføre databaseoperationer.