我在SQL Server表中有以下信息:
如何添加C1-C2-C3-C4色谱柱?为此,每个柱子具有不同的条件。我使用的是row_number() order by id_pv desc
,但它无法正常使用。
答案 0 :(得分:4)
我认为您可以使用嵌套的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;
答案 1 :(得分:1)
假设你的例子中你希望它在你的条件不满足时放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