首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当另一列不为空时的行号

当另一列不为空时的行号
EN

Stack Overflow用户
提问于 2020-10-05 22:07:01
回答 2查看 35关注 0票数 0

当另一列不为空时,我想添加一个行号

我有一个包含日期值的列,另一个包含数值的列,并且我希望在数值列不为空时填充行号

我试过case when,但不起作用

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-05 22:08:08

这是你想要的吗?

代码语言:javascript
复制
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数值分配一个按日期列排序的连续行号。

票数 1
EN

Stack Overflow用户

发布于 2020-10-05 22:11:10

作为戈登解决方案的替代方案,您可以尝试先处理非空数据,然后再合并其余的数据,如下所示:

代码语言:javascript
复制
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 null
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64210274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档