У меня есть переменная, которая содержит информацию о сортировке, как показано ниже. Информация сортировки может варьироваться в зависимости от столбцов, поэтому я сохранил ее в переменной.Как использовать переменную с предложением Order by в SQL Server
Declare @Sorting varchar(100) = 'AssetCode asc'
Я использую эту переменную для сортировки с помощью следующего запроса, но это не сортирует данные в соответствии с данными сортировки.
with _result as
(
select
ROW_NUMBER() over (order by @Sorting) as RowIndex,
*
from
@Assets
where
(@Keyword is null or (AssetCode like @Keyword
or DisplayName like @Keyword
or CategoryName like @Keyword
or SiteName like @Keyword
or BldgName like @Keyword
or SuiteName like @Keyword
or Location like @Keyword
or SerialVIN like @Keyword
or Barcode like @Keyword))
)
Может кто-нибудь скажет мне, как я могу использовать эту переменную с запросом для сортировки результата? Я буду очень благодарен.
Сделать это как динамически sql ... make @sql nvarchar (max) ... поместить весь запрос в него с порядком по переменной ... и пойти с execute (@sql), и вы получите то, что хотите – Veljko89
Создайте свой запрос как функцию просмотра таблицы, а затем использовать динамический sql с командой execute. –
@ Veljko89 Нет ли короткого пути для этого? –