Мне нужно отобразить сетку на веб-странице. Данные будут поступать из SQL Server 2008 через хранимую процедуру. Поскольку sproc возвращает тысячи записей, я решил использовать опцию подкачки, которая прекрасно работает. В хранимой процедуре я делаю что-то вроде этого:
declare @RowIdMin int=10
declare @RowIdMax int=25
select *
from (select Col1, Col2, ROW_NUMBER() over (order by Col1 desc) as RowId
from MyTable ) dt
where RowId BETWEEN @RowIdMin AND @RowIdMax
Это прекрасно работает, если пользователь с удовольствием получает данные, отсортированные по Col1. Как я могу переписать это, если я не знаю заранее, по какому столбцу должен быть отсортирован набор записей? Это не работает:
declare @RowIdMin int=10
declare @RowIdMax int=25
Declare @ColSort varchar (100) = 'MyColumn'
select *
from (select Col1, Col2, ROW_NUMBER() over (order by <b>@ColSort</b> desc) as RowId
from MyTable) dt
where RowId BETWEEN @RowIdMin AND @RowIdMax