Select med parameterstyret sortering og retning
Fra og med version 2008 kan man lave scripts som dette:select b.cpr
,b.fornavn
,b.efternavn
,p.postnr
,p.postby
from dbo.borger b
left join dbo.post p on (p.ref = b.post_ref)
order by
case @column
when 1 then b.cpr
when 2 then b.fornavn
when 3 then b.efternavn
when 4 then p.postnr
when 5 then p.postby
end
Det er smart hvis man skal ændre sorteringsorden i en liste. Man slipper for at skrive scriptet om og får (vistnok) ikke genereret en ny execution plan hver gang.
... men der er et problem. Tager vi listen og eksempelvis klikker 2 gange på en titel, så skal sorteringsordenen bibeholdes, men retningen ændres til desc. Nogen der har en god løsning til det?
Tilsyneladende kan desc ikke stå i en case