Sql 使用teradata中下一行的值

Sql 使用teradata中下一行的值,sql,teradata,Sql,Teradata,我有以下数据的表格: ID NUM1 NUM2 A 1000 1001 B 1001 1004 C 1006 1007 我想要一个这样的输出: ID NUM1 NUM2 NUM3 A 1000 1001 1001 B 1001 1004 1006 C 1006 1007 1007 您能帮我实现这一点吗。Teradata中没有滞后/超前功能,但您可以重写它: select ID, NUM1, N

我有以下数据的表格:

ID  NUM1    NUM2
A   1000    1001
B   1001    1004
C   1006    1007
我想要一个这样的输出:

ID  NUM1    NUM2    NUM3
A   1000    1001    1001
B   1001    1004    1006
C   1006    1007    1007

您能帮我实现这一点吗。

Teradata中没有滞后/超前功能,但您可以重写它:

select ID, NUM1, NUM2
   coalesce(min(NUM1) -- next row's value
            over (order by ID
                  rows between 1 following and 1 following)
           , NUM2)    -- or current value when there's no next row
from tab

Teradata中没有
LAG/LEAD
函数,但您可以重写它:

select ID, NUM1, NUM2
   coalesce(min(NUM1) -- next row's value
            over (order by ID
                  rows between 1 following and 1 following)
           , NUM2)    -- or current value when there's no next row
from tab

如何确定正确的顺序?通过ID或Num1?如何确定正确的顺序?通过ID还是Num1?