首页 > 解决方案 > Netezza 中具有重复数据的棘手范围查找

问题描述

下面是我需要在 Netezza SQL 中解决这个问题的场景。

如果您查看下面的输入第二条记录,第二列是空的,但我需要“H”记录上方的值形式。第二行的预期将是“A,CP,2”。与第 4 行相同,我需要来自第 3 条记录“H”的值,因此预期为“E,SP,4”

输入数据

H,CP,1

A2

H,SP,3

E,,4

H,,5

C,,6

输出:

H,CP,1

A,CP,2

H,SP,3

E,SP,4

H,,5

C,,6

第二个输入示例:INPUT

c1,c2,c3

H,P,1

H,Q,2

E,,3

A,,4

高,右,5

A,,6

C,,7

H,,8

E,,9

H,S,10

输出

H,P,1

H,Q,2

E,Q,3

答,问,4

高,右,5

A,R,6

C,R,7

H,,8

E,,9

H,S,10

标签: netezza

解决方案


我从你的例子中假设

  1. 给定的“字母”只能有一两行</li>
  2. 它只是有时为 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)

推荐阅读