[英]SQL row_number() with conditions
我在SQL Server表中具有以下信息:
如何添加C1-C2-C3-C4列? 為此,每個列都有不同的條件。 我正在row_number() order by id_pv desc
使用row_number() order by id_pv desc
,但是它不起作用。
我認為您可以使用嵌套的case語句來做到這一點-既可以在partition by
子句中,也可以在row_number()
。 對於第一列:
select t.*,
(case when expiry_date > @somdate and
row_number() over (partition by cod_suc, cod_ramo,
(case when expiry_date > @somdate then 1 else 0 end)
order by id_pv desc) as col1
then 1 else 0
end)
from table t;
從您的示例假設,您希望在不滿足條件時將其置於0,否則將其置於行號,請嘗試:
Select [your columns]
, case when ExpiryDate >= @someDate then row_number()
over (order by [list of columns])
else 0 end as c1
, case when ExpiryDate >= @someDate and Cod_grupo = 4 then row_number()
over (order by [other list of columns])
else 0 end as c2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.