DinoMedlem sedan sep. 20011 918 inlägg
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?
LarsGMedlem sedan dec. 200012 465 inlägg
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.
DinoMedlem sedan sep. 20011 918 inlägg
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 " ".
LarsGMedlem sedan dec. 200012 465 inlägg
Jo, det var något sådant. Jag ser nu att det saknas en högerparentes.
DinoMedlem sedan sep. 20011 918 inlägg
Får nu felet "Syntax error converting the nvarchar value 'Philip Steele' to a column of data type int." :q
@ndersMedlem sedan juni 200026 914 inlägg
Var satte du den saknade högerparentesen?
DinoMedlem sedan sep. 20011 918 inlägg
DinoMedlem sedan sep. 20011 918 inlägg
Jag får ok för koden, men fel när jag kör den.
LarsGMedlem sedan dec. 200012 465 inlägg
WHEN 'author' THEN substring(author,charindex(' ', author), len(author[b])[/b] - charindex(' ', author))
Var lite otydlig med var jag menade att parentesen saknades.
DinoMedlem sedan sep. 20011 918 inlägg
Får detta igen.
Dino skrev:
"Incorrect syntax near the keyword 'WHEN'."
DinoMedlem sedan sep. 20011 918 inlägg
Sorry, hade visst glömt kvar lite kod. Allt funkar hur fint som helst nu. Tackar så mycket. :)