Je kunt meerdere casussen schrijven, zelfs als ze allemaal dezelfde aandoening hebben.
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
Eigenlijk specificeert u geen kolom om op te sorteren, maar een expressie.
De case-instructie retourneert null als niet aan de voorwaarde wordt voldaan, dus eigenlijk betekent het:
CASE @OrderByColumn WHEN 1 THEN Forename ELSE NULL END
Dus als @OrderByColumn niet 1 is, retourneert de instructie altijd NULL. Dat sluit overigens niet uit van sorteren, maar het zet al die rijen bij elkaar in het resultaat, waardoor 'SurName' de beslissende sortering binnen die groep rijen wordt.