SELECT * FROM TableName WHERE ORDER BY CASE @OrderByColumn WHEN 1 THEN Forename WHEN 2 THEN Surname END;
I have a statement like a
another example:
SELECT * FROM dbo.Employee ORDER BY CASE WHEN Gender='Male' THEN EmployeeName END Desc, CASE WHEN Gender='Female' THEN Country END ASC
more details ...http://codechef4u.com/post/2015/04/07/order-by-clause-with-case-expressions-case-statement