У меня есть запрос, где мне нужно объявить переменную и установить значение для нее. Затем в инструкции select, основанной на одном из значений столбца (max_val
), мне нужно будет изменить значение переменной, если значение переменной превышает значение в max_col
. Основной запрос выглядит как на картинке ниже:Установить значение переменной и изменить на основе условия SQL
Declare @variable int
Set @variable = x
select * from (
select
*,
row_number() over (partition by account_id, product order by revenue desc) as rk
from (
select *
from dataset
where account_id = 'abc'
and product = 'xyz'
and @variable between min_val and max_val
) x
) y
where y.rk =1;
В этом запросе, если @variable > max_val
, то никакие записи не будут показаны. Тем не менее, я хочу включить условие, при котором, когда указанные критерии соответствуют, @variable
присваивается значение max_val
.
В SQL Server, вы можете не возвращают строки и установить переменную в одном запросе. –