如果值为空,则在 SQL 中生成一个新列,该列显示前一个单元格中的值

Posted

技术标签:

【中文标题】如果值为空,则在 SQL 中生成一个新列,该列显示前一个单元格中的值【英文标题】:Generate an new Column in SQL that displays a value from a previous cell if value gets empty 【发布时间】:2020-09-08 07:28:31 【问题描述】:

我正在尝试评估来自样本仓库的当前数据。 当工件不再有库存时,我对时间戳特别感兴趣。

为了将此时间戳与工件的 ID 联系起来,我目前正在寻找一个 SQL Query 以生成一个列,该列显示一旦 ID 值为空时已占用存储位置的工件的 ID。

这最好只发生在第一个空值上,而不是后面的。

目标结果应该如下图所示:

https://i.stack.imgur.com/ojvhs.png

【问题讨论】:

向我们展示一些示例表数据和预期结果 - 作为格式化文本(无图像)。 【参考方案1】:

你似乎想要lag()

select 
    t.*,
    case when id is null
        then lag(id) over(partition by location order by event_date)
    end as leaving_id
from mytable t

【讨论】:

以上是关于如果值为空,则在 SQL 中生成一个新列,该列显示前一个单元格中的值的主要内容,如果未能解决你的问题,请参考以下文章

根据条件在 Spark SQL 或 MySQL 中生成新列

在 sql server 2008 中生成脚本时添加新列

如果值为空,则在输入 [type=text] 中不考虑空白值

如果 ASP.Net 中的数据库值为空,则在 TextBox 中设置空字符串不起作用

如何比较多列,并在单个新列中生成值,在 Pandas 中使用 Apply 函数

使用条件在熊猫数据框中生成新列