Sql server 如何将上一行值指定给下一行

Sql server 如何将上一行值指定给下一行,sql-server,Sql Server,可能不是最佳解决方案,但如果不考虑一次性操作和性能,则以下方法可行 创建函数GetPreviousVal ( @前置值整型 ) 返回整数 像 开始 可能不是最佳解决方案,但如果不考虑一次性操作和性能,则以下方法可行 创建函数GetPreviousVal ( @前置值整型 ) 返回整数 像 开始 假设一个名为SampleData的表,以及名为Date和start的列,您可以执行以下操作来查询该表: UPDATE RowVal SET Starting = ISNULL(dbo.GetPreviou

可能不是最佳解决方案,但如果不考虑一次性操作和性能,则以下方法可行

创建函数GetPreviousVal

@前置值整型 ) 返回整数 像 开始


可能不是最佳解决方案,但如果不考虑一次性操作和性能,则以下方法可行

创建函数GetPreviousVal

@前置值整型 ) 返回整数 像 开始


假设一个名为
SampleData
的表,以及名为
Date
start
的列,您可以执行以下操作来查询该表:

UPDATE RowVal
SET Starting = ISNULL(dbo.GetPreviousVal(Ending),0)
将返回:

SELECT S1.Date, S1.Starting, ISNULL(S2.Starting, 0) as Ending
FROM SampleData S1
LEFT OUTER JOIN
(
    SELECT *
    FROM SampleData
) S2
ON DATEADD(d, 1, S1.Date) = S2.Date
如果要更新表,可以执行以下操作:

Date       Starting      Ending

10/01/2010      0            100
10/02/2010     100           200
10/03/2010     200           300
10/04/2010     300             0 

假设一个名为
SampleData
的表,以及名为
Date
start
的列,您可以执行以下操作来查询该表:

UPDATE RowVal
SET Starting = ISNULL(dbo.GetPreviousVal(Ending),0)
将返回:

SELECT S1.Date, S1.Starting, ISNULL(S2.Starting, 0) as Ending
FROM SampleData S1
LEFT OUTER JOIN
(
    SELECT *
    FROM SampleData
) S2
ON DATEADD(d, 1, S1.Date) = S2.Date
如果要更新表,可以执行以下操作:

Date       Starting      Ending

10/01/2010      0            100
10/02/2010     100           200
10/03/2010     200           300
10/04/2010     300             0 

你的桌子结构是什么样的?还有,SQL Server的哪个版本?您的表结构是什么样的?还有,什么版本的SQL Server?