• You might find this article helpful:

    Unpivot a Table Using Cross Apply[/url]

    I'm pretty sure I asked a question like this a while back, and the trick is to use dynamic SQL to grab a list of column names to unpivot, so that you get groups like this:

    CROSS APPLY (VALUES (Question1, Answer1),

    (Question2, Answer2),

    (Question3, Answer3),

    (Question4, Answer4),

    (Question5, Answer5))

    CrossApplied (Question, Answer)

    After searching for a second, found this by Aaron Bertrand: Use SQL Server's UNPIVOT operator to dynamically normalize output[/url]