Я просматривал таблицы сортировки по столбцу, указанному для некоторого ввода, и из того, что я нашел, нет простого способа сделать это. Лучшее, что я нашел, это оператор switch:
SELECT Column1, Column2, Column3, Column4
FROM Table
ORDER BY CASE WHEN @OrderBY = 'Column1' THEN Column1
WHEN @OrderBY = 'Column2' THEN Column2
WHEN @OrderBY = 'Column3' THEN Column3
WHEN @OrderBY = 'Column4' THEN Column4
Возможно ли сделать это без CASE
такого заявления? Если таблица станет больше и нужно будет сортировать больше столбцов, это может стать грязным.
Единственный способ, которым я смог это сделать, - это просто объединить большую строку SQL, что отчасти сводит на нет преимущества хранимых процедур и затрудняет написание и обслуживание SQL.