
Introduksjon til ORDER BY klausul i SQL
ORDER BY-ledd i SQL hjelper oss å kategorisere dataene i enten stigende eller synkende rekkefølge, avhengig av kolonnene i tabellene våre. ORDER BY er nøkkelordet som brukes i spørringen vår for å hjelpe oss med å sortere gjennom dataene. Som standard kategoriserer noen få databaser resultatene som returneres av spørringen i stigende rekkefølge. For å sortere dataene som er til stede i postene i synkende rekkefølge, bruker vi nøkkelordet DESC i spørringen. Vi har også nøkkelordet ASC for å kategorisere data i stigende rekkefølge, selv om vi stort sett ikke bruker dem på grunn av standardinnstillinger for databasen.
Parametere av ORDER BY Clause i SQL
- column_name: Dette indikerer kolonnenavnet som vi ønsker å hente, basert på hvilke dataene skal ordnes.
- tabellnavn: Dette indikerer navnet på tabellen som postene skal hentes fra. Vi må ha minst ett tabellnavn i denne parameteren.
- HVOR tilstand: Dette er en valgfri parameter. HVOR klausul inneholder betingelsene som vi må oppfylle for at dataene skal velges.
- ASC : Dette er nøkkelordet som brukes til å sortere kolonnedataene i stigende rekkefølge. Hvis ingen nøkkelord er nevnt, blir dataene sortert i stigende rekkefølge som standard.
- DESC: Dette er nøkkelordet som brukes til å sortere kolonnedataene i synkende rekkefølge.
- |: Dette er bare en indikator for “ELLER”, da vi skal bruke enten ASC eller DESC i spørringen vår deretter for resultatene.
BESTILLING AV klausul
Syntaks for ORDER BY er:
SELECT column_name(s)
FROM table_name(s)
(WHERE condition) (ORDER BY column1, column2, .. columnN) (ASC | DESC);
Syntaks for å sortere data i henhold til en enkelt kolonne
For å sortere data fra tabellen basert på en enkelt kolonne i enten stigende eller synkende rekkefølge, kan vi enten bruke ASC- eller DESC-nøkkelordene. I vårt eksempel vil vi sortere data i stigende rekkefølge og dermed bruke nøkkelordet ASC.
syntax
SELECT * FROM table_name ORDER BY column_name ASC
Syntaks for å sortere data i henhold til flere kolonner
For å sortere data i tabellen basert på flere kolonner i stigende eller synkende rekkefølge, kan vi enten bruke ASC- eller DESC-nøkkelordene. For å nevne de flere kolonnene som vi skal sortere data etter, må vi nevne navnene på kolonnene atskilt av komma (, ) -operatøren. I vårt eksempel vil vi sortere data i stigende rekkefølge og dermed bruke nøkkelordet ASC.
syntax
SELECT * FROM table_name ORDER BY column1 ASC, column2 ASC
Eksempler på ORDER BY klausul
La oss se på forskjellige eksempler for å forstå ORDER BY-klausulen bedre.
1. Eksempel for å sortere resultatene i en stigende rekkefølge
For å kategorisere resultatene i stigende rekkefølge, kan vi bruke ASC-nøkkelordet. Hvis det ikke er gitt noe nøkkelord, verken ASC eller DESC, er standard sorteringsrekkefølge stigende rekkefølge. La oss forstå dette ved hjelp av et eksempel. Vi har et ansattes bord.
| Ansatt ID | EmployeeLastName | EmployeeFirstName | Epost id |
| 001 | Donald | Jo | |
| 002 | Smith | Jamie | |
| 003 | Jones | Amy | |
| 004 | Reynolds | Andy | |
| 005 | Thomas | Sally | |
| 006 | brun | Dan |
Når vi prøver å ordne resultatene i stigende rekkefølge etter ansattens etternavn, kan vi bruke følgende utsagn, og resultatet som følger vises i tabellen etter.
SELECT *
FROM Employee
ORDER BY EmployeeLastName;
Resultat
| Ansatt ID | EmployeeLastName | EmployeeFirstName | Epost id |
| 006 | brun | Dan | |
| 001 | Donald | Jo | |
| 003 | Jones | Amy | |
| 004 | Reynolds | Andy | |
| 002 | Smith | Jamie | |
| 005 | Thomas | Sally |
Dette eksemplet gir alle oppføringene fra tabellen Ansatt sortert i stigende rekkefølge i henhold til feltet EmployeeLastName. Vi kan også bruke nøkkelordet ASC som følger for å få samme resultat.
SELECT EmployeeID, EmployeeLastName
FROM Employee
WHERE EmployeeID '003'
ORDER BY 1 DESC;
2. Eksempel for å sortere resultatene i fallende rekkefølge
Vi bruker nøkkelordet DESC når vi ønsker å sortere dataene i synkende rekkefølge, i vår BESTILL AV-ledd. La oss forstå dette ved hjelp av et eksempel. Vi har den samme tabellen Ansatt som inneholder følgende data.
| Ansatt ID | EmployeeLastName | EmployeeFirstName | Epost id |
| 001 | Donald | Jo | |
| 002 | Smith | Jamie | |
| 003 | Jones | Amy | |
| 004 | Reynolds | Andy | |
| 005 | Thomas | Sally | |
| 006 | brun | Dan |
Vi trenger bare ansatte som har en ansatt-ID som er større enn 2, og vi trenger våre data sortert i synkende rekkefølge. Vi bruker følgende SQL-setning for det samme og får resultatsettet med bare 4 poster.
SELECT *
FROM Employee
WHERE EmployeeID > 002
ORDER BY EmployeeID DESC;
Resultat:
| Ansatt ID | EmployeeLastName | EmployeeFirstName | Epost id |
| 006 | brun | Dan | |
| 005 | Thomas | Sally | |
| 004 | Reynolds | Andy | |
| 003 | Jones | Amy |
3. Eksempel for å sortere resultatene etter deres relative posisjon
Vi kan også ordne dataene våre etter den relative posisjonen til kolonnene, der 1 representerer det første feltet, 2 representerer det andre feltet, 3 representerer det tredje feltet og så videre. La oss prøve å ordne data i medarbeidertabellen vår i henhold til relative stillinger.
| Ansatt ID | EmployeeLastName | EmployeeFirstName | e-post |
| 001 | Donald | Jo | |
| 002 | Smith | Jamie | |
| 003 | Jones | Amy | |
| 004 | Reynolds | Andy | |
| 005 | Thomas | Sally | |
| 006 | brun | Dan |
Ved å bruke SQL-setningen som følger, kan vi ordne dataene i synkende rekkefølge til EmployeeID. Vi har også hevdet at vi bare trenger to kolonner fra tabellen, nemlig EmployeeID og EmployeeLastName, sammen med WHERE-leddet for å nevne at vi ikke ønsker noen rad som inneholder EmployeeID 003.
SELECT EmployeeID, EmployeeLastName
FROM Employee
WHERE EmployeeID '003'
ORDER BY 1 DESC;
Resultat
| Ansatt ID | EmployeeLastName |
| 006 | brun |
| 005 | Thomas |
| 004 | Reynolds |
| 002 | Smith |
| 001 | Donald |
Siden kolonnen på stilling 1 er EmployeeID, blir resultatsettet sortert i henhold til EmployeeID.
Konklusjon
I SQL returnerer ikke SELECT-setningen data i noen spesifikk rekkefølge. For å garantere en bestemt ordre benytter vi oss av ORDER BY-klausulen. ORDER BY sorteres på grunnlag av en eller flere kolonner. Postene returneres i stigende eller synkende rekkefølge. Hvis ASC- eller DESC-nøkkelord ikke er oppgitt, vil resultatene bli kategorisert i stigende rekkefølge.
Anbefalt artikkel
Dette har vært en guide til ORDER BY-klausulen i SQL. Her diskuterer vi parametrene og forskjellige eksempler på ORDER BY-ledd sammen med syntaks. Du kan også gå gjennom andre foreslåtte artikler for å lære mer -
- Fordeler med NoSQL
- SQL Management Tools
- T-SQL-strengfunksjoner
- PostgreSQL-datatyper
- Ulike typer SQL-data med eksempler