【发布时间】:2015-07-17 11:10:23
【问题描述】:
我有一个查询,我需要在其中声明一个变量并为其设置值。然后在基于其中一个列值 (max_val) 的 select 语句中,如果变量值超过 max_col 中的值,我将需要更改变量的值。基本查询如下所示:
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 中,不能在单个查询中既返回行又设置变量。
标签: sql sql-server tsql