Introduktion til ORDER BY-klausul i SQL
ORDER BY-klausul i SQL hjælper os med at kategorisere vores data i enten stigende eller faldende rækkefølge, afhængigt af kolonnerne i vores tabeller. BESTILLING AF er det nøgleord, der bruges i vores forespørgsel til at hjælpe os med at sortere dataene. Som standard kategoriserer nogle få databaser de resultater, der er returneret af forespørgslen, i stigende rækkefølge. For at sortere de data, der findes i posterne i faldende rækkefølge, bruger vi nøgleordet DESC i vores forespørgsel. Vi har også nøgleordet ASC til at kategorisere data i stigende rækkefølge, selvom vi for det meste ikke bruger dem på grund af standardindstillingerne i databasen.
Parametre af ORDER BY-klausul i SQL
- column_name: Dette angiver det kolonnenavn, som vi ønsker at hente, baseret på hvilke dataene skal arrangeres.
- tabelnavn: Dette angiver navnet på den tabel, hvorfra posterne skal hentes. Vi skal have mindst et tabelnavn i denne parameter.
- HVOR tilstand: Dette er en valgfri parameter. HVOR klausul indeholder de betingelser, vi skal opfylde for de data, der skal vælges.
- ASC : Dette er nøgleordet, der bruges til at sortere kolonnedataene i stigende rækkefølge. Hvis der ikke nævnes noget nøgleord, sorteres data som stigende rækkefølge som standard.
- DESC: Dette er nøgleordet, der bruges til at sortere kolonnedataene i faldende rækkefølge.
- |: Dette er bare en indikator for “ELLER”, da vi skal bruge ASC eller DESC i vores forespørgsel i overensstemmelse hermed til resultaterne.
BESTILLING AF klausul
Syntaks for ORDER BY er:
SELECT column_name(s)
FROM table_name(s)
(WHERE condition) (ORDER BY column1, column2, .. columnN) (ASC | DESC);
Syntaks til sortering af data i henhold til en enkelt kolonne
For at sortere data fra tabellen baseret på en enkelt kolonne i enten stigende eller faldende rækkefølge, kan vi enten bruge ASC- eller DESC-nøgleordene. I vores eksempel vil vi sortere data i stigende rækkefølge og dermed bruge nøgleordet ASC.
Syntaks
SELECT * FROM table_name ORDER BY column_name ASC
Syntaks til sortering af data i henhold til flere kolonner
For at sortere data fra tabellen baseret på flere kolonner i stigende eller faldende rækkefølge, kan vi enten bruge ASC- eller DESC-nøgleordene. For at nævne de flere kolonner, som vi vil sortere dataene efter, skal vi nævne navnene på de kolonner, der er adskilt af komma-operatøren. I vores eksempel vil vi sortere data i stigende rækkefølge og dermed bruge nøgleordet ASC.
Syntaks
SELECT * FROM table_name ORDER BY column1 ASC, column2 ASC
Eksempler på ORDER BY-klausul
Lad os se på forskellige eksempler for at forstå ORDER BY-klausulen bedre.
1. Eksempel til sortering af resultaterne i en stigende rækkefølge
For at kategorisere resultaterne i stigende rækkefølge kan vi bruge ASC-nøgleordet. Hvis der ikke er angivet noget nøgleord, hverken ASC eller DESC, er standard sorteringsrækkefølgen stigende rækkefølge. Lad os forstå dette ved hjælp af et eksempel. Vi har et medarbejderbord.
Medarbejder-ID | EmployeeLastName | EmployeeFirstName | EMAILID |
001 | Donald | Jo | |
002 | Smith | Jamie | |
003 | Jones | Amy | |
004 | Reynolds | Andy | |
005 | Thomas | Sally | |
006 | Brun | Dan |
Når vi prøver at arrangere resultaterne i stigende rækkefølge efter medarbejderens efternavn, kan vi bruge følgende udsagn, og resultatet, der følger, vises i tabellen efter.
SELECT *
FROM Employee
ORDER BY EmployeeLastName;
Resultat
Medarbejder-ID | EmployeeLastName | EmployeeFirstName | EMAILID |
006 | Brun | Dan | |
001 | Donald | Jo | |
003 | Jones | Amy | |
004 | Reynolds | Andy | |
002 | Smith | Jamie | |
005 | Thomas | Sally |
Dette eksempel returnerer alle poster fra medarbejder- tabellen sorteret i stigende rækkefølge i henhold til feltet EmployeeLastName. Vi kan også bruge nøgleordet ASC som følger for at få det samme resultat.
SELECT EmployeeID, EmployeeLastName
FROM Employee
WHERE EmployeeID '003'
ORDER BY 1 DESC;
2. Eksempel til sortering af resultaterne i en faldende rækkefølge
Vi bruger nøgleordet DESC, når vi vil sortere vores data i faldende rækkefølge, i vores ORDER BY-klausul. Lad os forstå dette ved hjælp af et eksempel. Vi har den samme tabel Medarbejder, der indeholder følgende data.
Medarbejder-ID | EmployeeLastName | EmployeeFirstName | EMAILID |
001 | Donald | Jo | |
002 | Smith | Jamie | |
003 | Jones | Amy | |
004 | Reynolds | Andy | |
005 | Thomas | Sally | |
006 | Brun | Dan |
Vi har kun brug for medarbejdere, hvis medarbejder-id er større end 2, og vi har brug for vores data sorteret i faldende rækkefølge. Vi bruger følgende SQL-sætning til det samme og får resultatsættetabellen med kun 4 poster.
SELECT *
FROM Employee
WHERE EmployeeID > 002
ORDER BY EmployeeID DESC;
Resultat:
Medarbejder-ID | EmployeeLastName | EmployeeFirstName | E-mail-id |
006 | Brun | Dan | |
005 | Thomas | Sally | |
004 | Reynolds | Andy | |
003 | Jones | Amy |
3. Eksempel for at sortere resultaterne efter deres relative position
Vi kan også arrangere vores data efter den relative placering af kolonnerne, hvor 1 repræsenterer det første felt, 2 repræsenterer det andet felt, 3 repræsenterer det tredje felt og så videre. Lad os prøve at arrangere data i vores medarbejdertabel i henhold til relative positioner.
Medarbejder-ID | EmployeeLastName | EmployeeFirstName | |
001 | Donald | Jo | |
002 | Smith | Jamie | |
003 | Jones | Amy | |
004 | Reynolds | Andy | |
005 | Thomas | Sally | |
006 | Brun | Dan |
Ved at bruge SQL-sætningen som følger, kan vi arrangere dataene i faldende rækkefølge af EmployeeID. Vi har også hævdet, at vi kun har brug for to kolonner fra tabellen, nemlig EmployeeID og EmployeeLastName, sammen med WHERE-klausulen for at nævne, at vi ikke ønsker nogen række, der indeholder EmployeeID 003.
SELECT EmployeeID, EmployeeLastName
FROM Employee
WHERE EmployeeID '003'
ORDER BY 1 DESC;
Resultat
Medarbejder-ID | EmployeeLastName |
006 | Brun |
005 | Thomas |
004 | Reynolds |
002 | Smith |
001 | Donald |
Da kolonnen i position 1 er EmployeeID, sorteres resultatsættet efter EmployeeID.
Konklusion
I SQL returnerer SELECT-sætningen ikke data i nogen bestemt rækkefølge. For at garantere en bestemt ordre bruger vi ORDER BY-klausulen. ORDER BY sorteres på basis af en eller flere kolonner. Poster returneres i stigende eller faldende rækkefølge. Hvis der ikke er angivet ASC- eller DESC-nøgleord, kategoriseres resultaterne i stigende rækkefølge.
Anbefalet artikel
Dette har været en guide til ORDER BY-klausulen i SQL. Her diskuterer vi parametrene og forskellige eksempler på ORDER BY-klausul sammen med syntaks. Du kan også gennemgå vores andre foreslåede artikler for at lære mere -
- Fordele ved NoSQL
- SQL-styringsværktøjer
- T-SQL strengfunktioner
- PostgreSQL-datatyper
- Forskellige typer af SQL-data med eksempler