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