У нас есть хранимая процедура, в которой мы хотим динамически разрешить пользователю выбирать, по какому столбцу сортировать результат и в каком порядке (по возрастанию / убыванию).В настоящее время у нас есть следующее предложение ORDER BY
, но я уверен, что оно может быть оптимизировано.Как?
ORDER BY
CASE WHEN @OrderBy = 'salvnummer' AND @OrderByDirection = 'DESC' THEN salvnummer END DESC,
CASE WHEN @OrderBy = 'salvnummer' AND @OrderByDirection = 'ASC' THEN salvnummer END, --ASC
CASE WHEN @OrderBy = 'entreprenaddel' AND @OrderByDirection = 'DESC' THEN entreprenaddel END DESC,
CASE WHEN @OrderBy = 'entreprenaddel' AND @OrderByDirection = 'ASC' THEN entreprenaddel END, --ASC
CASE WHEN @OrderBy = 'sektion' AND @OrderByDirection = 'DESC' THEN sektion END DESC,
CASE WHEN @OrderBy = 'sektion' AND @OrderByDirection = 'ASC' THEN sektion END, --ASC
CASE WHEN @OrderBy = 'tid' AND @OrderByDirection = 'DESC' THEN tid END DESC,
CASE WHEN @OrderBy = 'tid' AND @OrderByDirection = 'ASC' THEN tid END --ASC
Оба входных параметра в настоящее время varchars
.