如何用以下 NOT NULL 值替换 NULL 值? (SQL)
How to replace NULL values with the following NOT NULL value? (SQL)
如何将 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
作为数据库。
此致。谢谢。
我不熟悉 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
.
如何将 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
作为数据库。
此致。谢谢。
我不熟悉 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
.