我在postgresql中有一个表,如下所示。我需要创建一个新表,其中name
的NULL值为前一个非空行的值。
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
备注:
我可能因为权限限制而无法更改table1 需要创建一个新表。
表格table1
没有id
字段
答案 0 :(得分:0)
如果您有连续的空值记录,则以下内容应该有效。我假设你有一个像以前一样的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