У меня есть следующая хранимая процедура, которая возвращает A, B и счетчик в порядке убывания. Я пытаюсь использовать ROW_NUMBER, поэтому я могу записать записи, но я хочу, чтобы номер первой строки 1 был записью с наивысшим счетчиком, поэтому в основном, если я верну таблицу с 3 записями, а счет 30, 20, 10, то номер строки 1 должен соответствовать счету 30, номер строки 2 должен соответствовать счету 20, а номер строки 3 должен соответствовать счету 10. dbo.f_GetCount - это функция, возвращающая счетчик.
create procedure dbo.Test
as
@A nvarchar(300) = NULL,
@B nvarchar(10) = NULL
as
select @A = nullif(@A,'')
,@B = nullif(@B,'');
select h.A
,hrl.B
,dbo.f_GetCount(hrl.A,h.B) as cnt
from dbo.hrl
inner join dbo.h
on h.C = hrl.C
where(@A is null
or h.A like '%'[email protected]+'%'
)
and (@B is null
or hrl.B = @B
)
group by hrl.B
,h.A
order by cnt desc;