---
title: "order by sortering"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/89842-order-by-sortering"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Dino"
published: "2003-11-06T16:49:02.000Z"
updated: "2003-11-06T19:45:41.000Z"
replies: 10
views: 333
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/89842-order-by-sortering"
---

# order by sortering

## #1 — Dino, 2003-11-06T16:49Z

Har en tabell som kan kan se ut som nedan.

id \| ... \| author
\---------------
 1  \| ... \| Elisabeth Hagborg
 2  \| ... \| Berndt Sundsten, Birgitta Stenberg
 3  \| ... \| Lasse Ekholm
 4  \| ... \| Laura Trenter
 5  \| ... \| Paul Vaderlind, Ewa Malmborg, Roger Priddy

I en SELECT finns denna ORDER BY. 

```
...
ORDER BY 
	CASE @SortWay 
		WHEN 'desc' THEN ' '
    	ELSE
   		CASE @SortBy 
			WHEN 'title' THEN A.title
      			WHEN 'author' THEN A.author
			WHEN 'language' THEN A.language
      		ELSE 
			CAST(A.releasedate AS varchar(10))
   		END 
	END,
	CASE  @SortWay 
    		WHEN 'desc' THEN 
		CASE @SortBy 
			WHEN 'title' THEN A.title
      			WHEN 'author' THEN A.author
			WHEN 'language' THEN A.language
      		ELSE 
			CAST(A.releasedate AS varchar(10))
   		END 
	END DESC
```

Vad jag vill göra nu är att när det skall sorteras efter 'author' så skall det sorteras på efternamnet på den första personen i varje kolumn. Jag vill alltså bara sortera på detta sätt och inte att utdatan skall ändras. Går detta?

Permalänk: https://www.webforum.nu/p/89842

## #2 — LarsG, 2003-11-06T17:45Z

Grundtanken skulle vara att man sorterar på det som står efter första blanka som finns.

```
substring(author,charindex(' ', author), len(author - charindex(' ', author))
```

(otestat, off course)

Det är dock inte så enkelt i det generella fallet. 

Om en författare heter

Lars Erik Van der graaf

vad sorterar man på då? Helst skulle man då vilja ha namnet uppdelat i två olika kolumner och varje enskild författare lagrad som en egen post i en annan tabell.

Permalänk: https://www.webforum.nu/p/1198766

## #3 — Dino, 2003-11-06T18:52Z

Först. Ursäkta att jag springer ifrån datorn när jag precis ställt en fråga.

Får felet "Incorrect syntax near the keyword 'WHEN'." på denna kod, är det så du tänkt.

```
WHEN 'author' THEN substring(author,charindex(' ', author), len(author - charindex(' ', author))
```

Kan man inte göra så att om namnet är "Lars-Erik Van der Graaf", dubbelnamn brukar som tur är ha bindestreck:), att man sorterar på det som kommer efter första tomrummet " ".

Permalänk: https://www.webforum.nu/p/1198796

## #4 — LarsG, 2003-11-06T19:12Z

Jo, det var något sådant. Jag ser nu att det saknas en högerparentes.

Permalänk: https://www.webforum.nu/p/1198803

## #5 — Dino, 2003-11-06T19:26Z

Får nu felet "Syntax error converting the nvarchar value 'Philip Steele' to a column of data type int." :q

Permalänk: https://www.webforum.nu/p/1198810

## #6 — @nders, 2003-11-06T19:27Z

Var satte du den saknade högerparentesen?

Permalänk: https://www.webforum.nu/p/1198811

## #7 — Dino, 2003-11-06T19:28Z

..., author))**)**

Permalänk: https://www.webforum.nu/p/1198814

## #8 — Dino, 2003-11-06T19:28Z

Jag får ok för koden, men fel när jag kör den.

Permalänk: https://www.webforum.nu/p/1198816

## #9 — LarsG, 2003-11-06T19:30Z

```
WHEN 'author' THEN substring(author,charindex(' ', author), len(author[b])[/b] - charindex(' ', author))
```

Var lite otydlig med var jag menade att parentesen saknades.

Permalänk: https://www.webforum.nu/p/1198820

## #10 — Dino, 2003-11-06T19:33Z

Får detta igen.

> **Dino skrev:**
>
> "Incorrect syntax near the keyword 'WHEN'."

Permalänk: https://www.webforum.nu/p/1198826

## #11 — Dino, 2003-11-06T19:45Z

Sorry, hade visst glömt kvar lite kod. Allt funkar hur fint som helst nu. Tackar så mycket. :)

Permalänk: https://www.webforum.nu/p/1198830

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/89842-order-by-sortering
