问题描述
以下是我需要在 Netezza SQL 中解决此问题的方案。
如果你看下面的输入第二条记录,第二列是空的,但我需要'H'记录上方的值形式。预计第 2 行将是“A,CP,2”。与第 4 行相同,我需要来自第 3 条记录“H”的值,因此预期为“E,SP,4”
输入数据
H,1
A,2
H,3
E,4
H,5
C,6
输出:
H,6
第二个输入示例: 输入
c1,c2,c3
H,P,1
H,Q,2
E,3
A,R,5
A,6
C,7
H,8
E,9
H,S,10
输出
H,10
解决方法
我从你的例子中假设
- 一个给定的“字母”只能有一两行
- 只是中间的列有时为 NULL?
我进一步假设 3)表格被称为TAB 4) 并且有 3 列名为 C1,C2,C3
在这种情况下,这应该涵盖它:
Select a.C1,nvl(a.C2,b.C2),a.C3
From TAB a
Left Join TAB b
Using (C1)