Часто бывает нужно предоставить выборку данных в MS SQL Server в отсортированном виде, при этом сортировка должна быть настраиваемая на клиенте (направление сортировки и поле сортировки). Пример такого сценария: таблица на клиенте, в которой выводятся данные о каких-либо объектах.
В большинстве случаев, такую задачу решают при помощи Dynamic SQL.
Альтернативным вариантом является построение выражения в инструкции ORDER BY на основе входных данных.
Собственно пример реализации такого варианта решения:
declare @order nvarchar(max) set @order = 'Field1' -- ... declare @direction nvarchar(4) set @direction = 'asc' -- ... select * from MyTable1 order by case when @direction = 'asc' then case when @order = 'Field1' then Field1 when @order = 'Field2' then Field2 when @order = 'Field3' then Field3 end else null end asc, case when @direction = 'desc' then case when @order = 'Field1' then Field1 when @order = 'Field2' then Field2 when @order = 'Field3' then Field3 end else null end desc
Комментариев нет:
Отправить комментарий