• 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