如何使用以下NULL
值替换NOT NULL
值(因此该列中值为NOT NULL
的下一行)?
想象一下下表(点击它):
a 100
b NULL
c 102
d NULL
e NULL
f 104
目标是a是100,b,c是102而d,e,f是104。
我使用HANA
作为数据库。
祝你好运。谢谢。
答案 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表别名)。