Anda dapat menulis beberapa kasus, meskipun semuanya memiliki kondisi yang sama.
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
Sebenarnya, Anda tidak menentukan kolom untuk diurutkan, tetapi ekspresi.
Pernyataan kasus mengembalikan null jika kondisi tidak terpenuhi, jadi sebenarnya artinya:
CASE @OrderByColumn WHEN 1 THEN Forename ELSE NULL END
Jadi jika @OrderByColumn bukan 1 maka pernyataan kembali selalu NULL. Omong-omong, itu tidak mengecualikannya dari penyortiran, tetapi menempatkan semua baris itu bersama-sama dalam hasil, menjadikan 'SurName' penyortiran yang menentukan dalam grup baris tersebut.