如何用以下 NOT NULL 值替换 NULL 值? (SQL)

How to replace NULL values with the following NOT NULL value? (SQL)

如何将 NULL 值替换为以下 NOT NULL 值(因此下一行在该列中的值为 NOT NULL)?

想象以下 table(点击它):

TABLE

a    100
b    NULL
c    102
d    NULL
e    NULL
f    104

目标是a为100,b、c为102,d、e、f为104。

我使用 HANA 作为数据库。

此致。谢谢。

我不熟悉 HANA,但是这个 SQL 非常通用并且符合 ANSI,因此它应该适用于大多数 SQL 引擎。一些较简单的引擎不支持子查询,但大多数应该支持。

SELECT
    T1.col1,
    COALESCE(T1.col2, T2.col2) AS col2
FROM
    My_Table T1
LEFT OUTER JOIN My_Table T2 ON
    T2.col1 =
        (
        SELECT MIN(T3.col1)
        FROM My_Table T3
        WHERE
            T3.col1 > T1.col1 AND
            T3.col2 IS NOT NULL
        )

查询的想法是它 JOIN 将 table 传递给自身以获取没有 NULL 值的下一行(T2 table 别名)在 col2.