Du kan skrive flere sager, selvom de alle har samme tilstand.
ORDER BY
CASE @OrderByColumn WHEN 1 THEN Forename END DESC,
CASE @OrderByColumn WHEN 1 THEN Date END,
CASE @OrderByColumn WHEN 1 THEN Location END,
CASE @OrderByColumn WHEN 2 THEN Surname END ASC
Faktisk angiver du ikke en kolonne, der skal sorteres efter, men et udtryk.
Sagsudsagnet returnerer null, hvis betingelsen ikke er opfyldt, så faktisk betyder det:
CASE @OrderByColumn WHEN 1 THEN Forename ELSE NULL END
Så hvis @OrderByColumn ikke er 1, returnerer sætningen altid NULL. Det udelukker i øvrigt ikke det fra sortering, men det sætter alle disse rækker sammen i resultatet, hvilket gør 'Efternavn' til den afgørende sortering inden for den gruppe af rækker.