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