SQL BESTÄLL EFTER
SQL ORDER BY sats används för att sortera data som lagras i tabeller i databasen . Sorteringen kan göras på ett stigande, fallande sätt eller baserat på flera kolumner i tabellen .
I allmänhet är standardsorteringsordningen stigande.
SELECT expressions FROM tables WHERE conditions ORDER BY expression ASC | DESC;
Följande är syntaxen för en allmän ORDER BY-sats:
Exempel:
Låt oss överväga följande kunder bord.
ID | NAMN | ÅLDER | ADRESS | LÖN |
1 | Himani gupta | 21 | Modinagar | 22000 |
2 | Shiva tiwari | 22 | Bhopal | 21 000 |
3 | Ajeet bhargav | 45 | Meerut | 65 000 |
4 | Ritesh yadav | 36 | Azamgarh | 26 000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
SELECT * FROM Customers ORDER BY NAME, SALARY;
Ovanstående fråga kommer att sortera alla poster i stigande ordning baserat på kolumnerna NAMN och LÖN.
Utdata:
ID | NAMN | ÅLDER | ADRESS | 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 | 26 000 |
2 | Shiva tiwari | 22 | Bhopal | 21 000 |
SELECT * FROM CUSTOMERS ORDER BY NAME DESC;
Ovanstående fråga kommer att sortera alla poster i tabellen på ett fallande sätt baserat på kolumnen NAMN.
Utdata:
ID | NAMN | ÅLDER | ADRESS | LÖN |
2 | Shiva tiwari | 22 | Bhopal | 21 000 |
4 | Ritesh yadav | 36 | Azamgarh | 26 000 |
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 |
Det finns olika ämnen under SQL ORDER BY-satsen. De är nämligen:
- SQL-ORDER BY ASC – Sorterar data på ett stigande sätt
- SQL ORDER BY DESC – Sorterar data på fallande sätt
- SQL-ORDNING Slumpmässigt – Sorterar slumpmässiga data
- SQL ORDER BY LIMIT – Väljer begränsad data från databasen
- SQL-ORDNING EFTER flera kolumner – Sorterar data baserat på flera kolumner.
Låt oss diskutera var och en av dem i detalj.
SQL-ORDNING EFTER ASC
SQL-ORDER BY ASC sats sorterar data i stigande ordning baserat på vissa kolumner. I allmänhet är standardsorteringsordningen stigande.
Exempel:
Låt oss överväga följande kunder bord.
ID | NAMN | ÅLDER | ADRESS | LÖN |
1 | Himani gupta | 21 | Modinagar | 22000 |
2 | Shiva tiwari | 22 | Bhopal | 21 000 |
3 | Ajeet bhargav | 45 | Meerut | 65 000 |
4 | Ritesh yadav | 36 | Azamgarh | 26 000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
SELECT * FROM Customers ORDER BY NAME, SALARY;
Ovanstående fråga kommer att sortera alla poster i stigande ordning baserat på kolumnerna NAMN och LÖN.
Utdata:
ID | NAMN | ÅLDER | ADRESS | 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 | 26 000 |
2 | Shiva tiwari | 22 | Bhopal | 21 000 |
SQL ORDER BY DESC
SQL ORDER BY DESC-satsen sorterar data i fallande ordning baserat på vissa kolumner.
Exempel:
Låt oss överväga följande kunder bord.
ID | NAMN | ÅLDER | ADRESS | LÖN |
1 | Himani gupta | 21 | Modinagar | 22000 |
2 | Shiva tiwari | 22 | Bhopal | 21 000 |
3 | Ajeet bhargav | 45 | Meerut | 65 000 |
4 | Ritesh yadav | 36 | Azamgarh | 26 000 |
5 | Balwant singh | 45 | Varanasi | 36000 |
6 | Mahesh sharma | 26 | Mathura | 22000 |
SELECT * FROM CUSTOMERS ORDER BY NAME DESC;
Ovanstående fråga kommer att sortera alla poster i tabellen på ett fallande sätt baserat på kolumnen NAMN.
Utdata:
ID | NAMN | ÅLDER | ADRESS | LÖN |
2 | Shiva tiwari | 22 | Bhopal | 21 000 |
4 | Ritesh yadav | 36 | Azamgarh | 26 000 |
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-satsen hjälper till att hämta ett specifikt antal poster från databastabellen. Det används vanligtvis i situationer där det finns ett stort antal tuplar som uppfyller det givna villkoret. Den sätter en övre gräns för antalet poster som hämtas.
För att använda LIMIT-satsen i SQL måste man använda ROWNUM klausul med det.
Notera:Det bör noteras att LIMIT-satsen inte stöds av alla SQL-versioner.
Denna sats kan specificeras med SQL 2008 OFFSET eller FETCH FIRST-satser .
Exempel:
Låt oss överväga följande elev bord.
RollNo | Namn | Betyg |
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;
Ovanstående fråga kommer bara att returnera de fem bästa eleverna från elevtabellen.
Utdata:
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
LIMIT-satsen kan också användas med ORDER BY-satsen.
SELECT * FROM Student ORDER BY Grade DESC LIMIT 3;
Ovanstående fråga returnerar de tre bästa eleverna som har de högsta betygen i fallande ordning.
Utdata:
12006 | Anne | 10 |
12001 | Aditya | 9 |
12004 | Robin | 9 |
LIMIT-operatorn är särskilt användbar i situationer där begränsad data behöver hämtas utan att använda några villkorliga uttalanden.
Operatören LIMIT kan också användas med OFFSET-operatorn.
LIMIT med OFFSET
Det bör noteras att OFFSET-värdet bör vara större än noll , och det kan inte vara negativt. Om ett negativt värde anges kommer det att returnera ett fel.
Exempel:
Låt oss överväga samma studenttabell.
RollNo | Namn | Betyg |
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;
Den här frågan kommer att returnera de fem bästa posterna i elevtabellen, exklusive de två översta posterna.
Utdata:
RollNo | Namn | Betyg |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anne | 10 |
12007 | Yusuf | 7 |
BEGRÄNSA ALLA
Det finns en annan klausul som liknar LIMIT känd som LIMIT ALL . LIMIT ALL-satsen sätter ingen gräns och kommer att returnera alla poster i tabellen.
Exempel:
Låt oss återigen överväga samma studenttabell.
RollNo | Namn | Betyg |
12001 | Aditya | 9 |
12002 | Sahil | 6 |
12003 | Hema | 8 |
12004 | Robin | 9 |
12005 | Sita | 7 |
12006 | Anne | 10 |
12007 | Yusuf | 7 |
12008 | Alex | 5 |
Fråga:
SELECT * FROM Student LIMIT ALL;
RollNo | Namn | Betyg |
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-ORDNING EFTER flera kolumner
SQL ORDER BY Multiple Columns returnerar dataposterna i kolumnen genom att sortera dem med flera kolumner som har angetts i frågan.
Den kommer att sortera data baserat på ordningen på kolumnnamnen som har angetts efter ORDER BY-satsen. Namnet på kolumnerna ska läggas till i motsvarande ordning som användaren vill att sorteringen ska ske.
Flera kolumnnamn kan läggas till genom att separera dem med ett kommatecken (,). Nyckelorden ASC eller DESC kan också användas för att ange sorteringsordningen.
Exempel:
Låt oss överväga följande anställd tabell med fyra kolumner nämligen id, first_name, last_name och lön.
id | förnamn | efternamn | lön |
1 | Lisa | Ulman | 3000 |
2 | Ada | Muller | 2400 |
3 | Thomas | Grön | 2400 |
4 | Michael | Muller | 3000 |
5 | Maria | Grön | 2400 |
Fråga:
SELECT id, first_name, last_name, salary FROM employee ORDER BY salary DESC, last_name;
Utdata:
id | förnamn | efternamn | lön |
4 | Michael | M uller | 3000 |
1 | Lisa | U lman | 3000 |
3 | Thomas | G reen | 2400 |
5 | Maria | G reen | 2400 |
2 | Ada | M uller | 2400 |
Därför har resultatet först sorterats efter lön i fallande ordning och sedan efter efternamn i stigande ordning. Det bör noteras att om ASC eller DESC inte nämns kommer det som standard att sortera båda kolumnerna i stigande ordning.
Slutsats
Så ovan är några av de viktigaste och mest använda ORDER BY-klausulerna som används av utvecklare dagligen för att utföra specifika operationer på databasen och hämta ut data. Dessa klausuler kan användas individuellt eller de kan också användas tillsammans, på ett kombinerat sätt, för att utföra databasoperationer.