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

时间:2016-01-26 13:37:40

标签: sql database hana

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

想象一下下表(点击它):

TABLE

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

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

我使用HANA作为数据库。

祝你好运。谢谢。

1 个答案:

答案 0 :(得分:1)

我不熟悉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自己的表来获取NULL中没有col2值的下一行(T2表别名)。