# Sådan bruges SQL ORDER BY

Med SQL-kommandoen `ORDER BY` kan du sortere søgeresultaterne efter dine egne behov, enten i stigende eller faldende rækkefølge. Ved at sortere dataene i din måltabel i rækker og kolonner kan du gøre resultaterne mere overskuelige og læselige. Det optimerer og fremskynder igen dine dataanalyser og forespørgsler i komplekse datasæt.

## Hvad er SQL `ORDER BY`?

Du kan bruge SQL `ORDER BY` til at sortere data og resultater fra både enkle og komplekse datasæt. Kommandoen giver dig mulighed for at definere, **hvordan dataene skal ranges** i måltabellen. Derudover kan du angive, om dataene skal sorteres i stigende eller faldende rækkefølge. På den måde hjælper `ORDER BY` med at levere forespørgselsresultater, der er overskuelige og letlæselige.

Som standard viser `ORDER BY` resultaterne i stigende rækkefølge, dvs. fra A til Z eller fra den mindste til den største værdi. Hvis du foretrækker resultaterne i faldende rækkefølge, kan du bruge det valgfri nøgleord `DESC`. Du kan angive en eller flere målkolonner for resultaterne.

SQL `ORDER BY` er vigtigt for at kunne udføre **velstrukturerede og hurtige forespørgsler**. Det bruges ofte sammen med SELECT, WHERE og andre SQL-operatører og -funktioner som f.eks. GROUP BY.

Tip Vil du gerne forstå [SQL](https://www.ionos.com/da-dk/digitalguide/server/know-how/hvad-er-sql/) bedre, men ved ikke, hvor du skal begynde? Vores [introduktion til SQL med eksempler](https://www.ionos.com/da-dk/digitalguide/server/konfiguration/introduktion-til-sql-med-eksempler/) gør det nemt at komme i gang med at lære dette populære databasesprog.

## Hvordan ser syntaksen i SQL `ORDER BY` ud?

Syntaksen i SQL `ORDER BY` ser således ud:

```sql
SELECT  ColumnA, ColumnB, …  or *
FROM  Table
ORDER BY  ColumnA, ColumnB, …  (optional: ASC or DESC)
```

Note Hvis du kun angiver én kolonne efter `ORDER BY`, får du **en kolonne med sorterede resultater**. Hvis du angiver mere end én kolonne, sorteres resultaterne efter KolonneA. Hvis KolonneA indeholder identiske værdier i nogle rækker, sorteres disse rækker efter KolonneB.

Du kan udvide denne syntaks med yderligere operatorer og parametre. En `WHERE` kan for eksempel bruges til at definere kriterier, der indsnævrer dine søgeresultater. Syntaksen for `ORDER BY` kombineret med `WHERE` ser således ud:

```sql
SELECT  ColumnA, ColumnB, …  or *
FROM  Table
WHERE  ColumnA  =  'SearchCondition'
ORDER BY  ColumnA, ColumnB, …  (optional: ASC or DESC)
```

Du kan også bruge følgende parametre:

- `SELECT`: Du kan bruge SELECT til at angive, hvilke data du vil analysere. Brug en stjerne `*` for at hente hele datasættet, eller indtast kolonnenavne for at arbejde med de pågældende kolonner.
- `FROM`: Angiver, hvilken tabel du vil hente data fra.
- `WHERE`: WHERE er en valgfri klausul til at definere søgekriterier, der indsnævrer dine resultater. Inden for en `WHERE` kan du bruge operatorer som `=`, LIKE eller [NOT](https://www.ionos.com/da-dk/digitalguide/server/konfiguration/sql-not/).
- `ORDER BY`: Definerer, hvilken kolonne du vil sortere dine resultater efter. Hvis du ikke tilføjer `ASC` eller `DESC`, vil resultaterne som standard blive sorteret i stigende rækkefølge.

Note Afhængigt af databasen sorteres NULL-værdier `ORDER BY` automatisk eller i henhold til den valgte sorteringsrækkefølge. I SQLite, MySQL og SQL Server behandles NULL-værdier som de laveste værdier. Det betyder, at de vises først i stigende rækkefølge. I Oracle og PostgreSQL behandles NULL-værdier som de højeste værdier. De vises derfor sidst i stigende rækkefølge.

## Hvad kan SQL `ORDER BY` bruges til?

Her er nogle eksempler på, hvordan SQL `ORDER BY` kan bruges i praksis:

- Sortering af produktoplysninger efter produktnavn, kategori eller pris
- Sortering af transaktioner efter beløb, dato eller navn
- Sortering af ordrer efter beløb eller bedømmelser
- Sortering af medarbejdere efter løn, kontrakter, præstation eller afdeling
- Oversigt over lagerbeholdning baseret på mængde eller navn
- Sortering af forsendelser efter postnummer eller sporingsnummer
- Sortering af kundelister efter region eller alder

## Eksempler på SQL `ORDER BY`

Vi vil nu se på tre eksempler, hvor `ORDER BY` indgår.

### Sortering af produkter efter pris

I dette eksempel sorterer vi produkter fra kategorien »Hår« i stigende rækkefølge efter pris. Vi bruger `FROM` og `WHERE` til at angive, hvilke varer vi vil sortere. Med `ORDER BY` og `ASC` angiver vi, at vi vil sortere dem i stigende rækkefølge efter pris. Syntaksen ser således ud:

```sql
SELECT  *
FROM  Products
WHERE  Category  = 'Hair'
ORDER BY  Price  ASC;
```

### Filtrering af kunder

Lad os sige, at du arbejder i en tabel ved navn »Kunder« og vil sortere alle kunder fra Storbritannien efter deres navn. Du vil sortere dem i omvendt alfabetisk rækkefølge fra Z til A, så du tilføjer `DESC` til kommandoen `ORDER BY`.

```sql
SELECT  *
FROM  Customers
WHERE  Country = 'UK'
ORDER BY  Name  DESC;
```

### Sortering efter flere kategorier

I dette eksempel vil du sortere produkter fra kategorien »Elektronik« efter ordremængde. Hvis ordremængderne er ens, vil du sortere dem efter det land, ordren kommer fra.

```sql
SELECT  *
FROM  Products
WHERE  Category  =  'Electronics'
ORDER BY  OrderQuantity ASC,  Country  DESC;
```

## Findes der alternativer til SQL `ORDER BY`?

Der findes ingen alternativer til `ORDER BY` i SQL, der har samme funktion. GROUP BY er dog en SQL-kommando, der ofte bruges sammen med `ORDER BY`. `GROUP BY` kan bruges til **at gruppere poster efter kategorier**, og `ORDER BY` kan desuden sortere disse poster.

**Et eksempel**: Lad os sige, at du vil gruppere kundernes ordremængder efter land og derefter bruge aggregeringsfunktionen AVG til at sortere efter den gennemsnitlige ordremængde. Syntaksen for dette vil se således ud:

```sql
SELECT  Country, AVG(OrderQuantity)
FROM  Customers
WHERE  Category = 'Electronics'
GROUP BY  Country
ORDER BY  AVG(OrderQuantity) ASC;
```

Du kan også bruge en HAVING- klausul til at filtrere de sorterede poster ud fra søgekriterier og betingelser. `LIMIT` kan bruges til at begrænse resultatsættet til et bestemt antal.


This is a markdown version of: [https://www.ionos.com/da-dk/digitalguide/server/konfiguration/sql-order-by/](https://www.ionos.com/da-dk/digitalguide/server/konfiguration/sql-order-by/) for AI/LLM consumption.