当另一列不为空时,我想添加一个行号
我有一个包含日期值的列,另一个包含数值的列,并且我希望在数值列不为空时填充行号
我试过case when,但不起作用
发布于 2020-10-05 22:08:08
这是你想要的吗?
select t.*,
(case when col2 is not null
then row_number() over (partition by col2 is not null order by date)
end) as seqnum
from t;这会为非NULL数值分配一个按日期列排序的连续行号。
发布于 2020-10-05 22:11:10
作为戈登解决方案的替代方案,您可以尝试先处理非空数据,然后再合并其余的数据,如下所示:
SELECT nmb,nmb2,ROW_NUMBER() OVER (ORDER BY nmb2 asc) AS idx
FROM t
WHERE nmb2 IS NOT NULL
UNION
SELECT nmb,nmb2,NULL
FROM t
WHERE nmb2 IS nullhttps://stackoverflow.com/questions/64210274
复制相似问题