gpt4 book ai didi

SQL - 使用 select 使用先前的非空值更新列的空值

转载 作者:行者123 更新时间:2023-11-29 13:51:17 25 4
gpt4 key购买 nike

我在 postgresql 中有一个表,如下所示。我需要创建一个新表,其中 name 的 NULL 值是前一个非空行的值。

表1

name    time    value
---------------------
john 11:00 324
NULL 12:00 645
NULL 13:00 324
jane 11:00 132
NULL 12:00 30
NULL 13:00 NULL
NULL 14:00 -1

输出表

name    time    value
---------------------
john 11:00 324
john 12:00 645
john 13:00 324
jane 11:00 132
jane 12:00 30
jane 13:00 NULL
jane 14:00 -1

注意事项:

  1. 由于权限限制,我无法更改 table1,所以可能需要创建一个新表。

  2. table1 没有 id 字段

最佳答案

如果您有包含空值的连续记录,则以下操作应该有效。我假设你像以前一样有一个 id 列

SELECT DISTINCT ON (a.id) a.id,b.name FROM table1 a INNER JOIN

(SELECT * FROM table1 WHERE name IS NOT NULL) b

ON a.id > b.id
WHERE a.name IS NULL
ORDER BY a.id,b.id DESC

关于SQL - 使用 select 使用先前的非空值更新列的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40786684/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com