首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于另一个SQL查询替换的空值

基于另一个SQL查询替换的空值
EN

Stack Overflow用户
提问于 2018-08-14 03:51:26
回答 2查看 35关注 0票数 1

因此,我使用ROW_NUMBER() OVER(PARTITION BY)查询返回数据和行号,并将其放入一个临时表中。初始输出如截图所示:

从这里开始,我需要在bt_newlabel列中分别替换空值。因此,第1-4行将在进行中,5-9将是承保,10-13将是实现,以此类推。

我正在碰壁,试图确定如何做到这一点。感谢你的任何帮助或意见,我将如何进行这一点。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-14 03:54:11

一种方法是分配组,然后指定值。例如:

代码语言:javascript
复制
select t.*, max(bt_newlabel) over (partition by grp) as new_newlabel
from (select t.*, count(bt_newlabel) over (order by bt_stamp) as grp
      from t
     ) t;

该组只是先前在数据中看到的已知值的数量。

您可以使用以下命令更新该字段:

代码语言:javascript
复制
with toupdate as (
      select t.*, max(bt_newlabel) over (partition by grp) as new_newlabel
      from (select t.*, count(bt_newlabel) over (order by bt_stamp) as grp
            from t
           ) t
     )
update toupdate
    set bt_newlabel = new_newlabel
    where bt_newlabel is null;
票数 1
EN

Stack Overflow用户

发布于 2018-08-14 04:29:35

如果我理解您正在尝试做什么,这是您需要在临时表上执行的更新类型:

代码语言:javascript
复制
--This will update rows 1-4 to 'Pre-Underwritting'

UPDATE temp_table SET bt_newlabel = 'Pre-Underwritting'
WHERE rownumber between 
1 AND (SELECT TOP 1 rownumber FROM temp_table WHERE bt_oldlabel = 'Pre-Underwritting');

--This will update rows 5-9 to 'Underwritting'

UPDATE temp_table SET bt_newlabel = 'Underwritting'
WHERE rownumber between 
(SELECT TOP 1 rownumber FROM temp_table WHERE bt_oldlabel = 'Pre-Underwritting')
AND
(SELECT TOP 1 rownumber FROM temp_table WHERE bt_oldlabel = 'Underwritting');

--This will update rows 10-13 to 'Implementation'

UPDATE temp_table SET bt_newlabel = 'Implementation'
WHERE rownumber between 
(SELECT TOP 1 rownumber FROM temp_table WHERE bt_oldlabel = 'Underwritting')
AND
(SELECT TOP 1 rownumber FROM temp_table WHERE bt_oldlabel = 'Implementation');

我做了一个可以正常工作的提琴来查看结果:http://sqlfiddle.com/#!18/1cae2/1/3

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51829630

复制
相关文章

相似问题

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