Вы можете подготовить 5
заказанные наборы и PIVOT
их:
SELECT *
FROM (
SELECT 'col1' AS name, col1 AS col, ROW_NUMBER() OVER (ORDER BY NEWID()) AS rn
FROM table
UNION ALL
SELECT 'col2', col2, ROW_NUMBER() OVER (ORDER BY NEWID())
FROM table
UNION ALL
SELECT 'col3', col3, ROW_NUMBER() OVER (ORDER BY NEWID())
FROM table
UNION ALL
SELECT 'col4', col4, ROW_NUMBER() OVER (ORDER BY NEWID())
FROM table
UNION ALL
SELECT 'col5', col5, ROW_NUMBER() OVER (ORDER BY NEWID())
FROM table
) q
PIVOT (
MIN(col)
FOR name IN ([col1], [col2], [col3], [col4], [col5])
) pt
См. Эту запись в моем блоге для более подробной информации: