this is the one of the way to handle those error.
DECLARE @sortby VARCHAR(10)
SET @sortby='String2'
SELECT String1, String2, Date1
FROM (
SELECT 'StringValue1', '2', CONVERT(datetime,'1 July 2010 00:01:00')
UNION ALL
SELECT 'StringValue2', '1', CONVERT(datetime,'2 July 2010 00:02:00')
) AS a(String1,String2,Date1)
ORDER BY
CASE
WHEN @sortby = 'String1' THEN String2
WHEN @sortby = 'String2' THEN String1
end,
CASE
WHEN @sortby = 'Date1' THEN Date1
END
Thanks & Regards
Deepak.A