sql >> Database teknologi >  >> RDS >> Database

SQL BESTIL EFTER

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.


  1. Sådan opretter du forbindelse til SQL Server Instance ved at bruge Windows-godkendelse eller SQL Server-godkendelse - SQL Server / T-SQL vejledning del 3

  2. Opret en midlertidig tabel i SQL Server

  3. Er der en MySQL-indstilling/-funktion til at spore historikken for ændringer i poster?

  4. DATE() Eksempler – MySQL