如何根据同一列中的前一行评估后续行。
我有一个调度查询,其中包含需要根据几个条件进行调整的时间。
为简单起见,假设基本输出中的每一行都包含以小时为单位的计划时间。
施万 1
2
4
6
6
8
我需要调整输出以遵循设定规则,例如最小2小时间距。我的结果应该是:
Sch ....... Adj Sch
1 ............. 1
2 ............. 3
4 ............. 5
6 ............. 7
6 ............. 9
8 ............ 11
我假设我必须遍历表格但不确定如何。
答案 0 :(得分:0)
WHILE
循环通常不受欢迎。您也可以选择使用CURSOR
。既然你在SQL中询问了如何进行循环,那么基本概念就是:
DECLARE @counter as int
SET @Counter = 0
--Do something here to each row
WHILE @Counter < someNumberOrCountFromTheDatabase
BEGIN
SET @Counter = @Counter + 1
END
确保您正确地考虑了您的逻辑,否则您将面临无限循环的风险。
这是一个good SO answer,解释了CURSOR,LOOPS和可能使用递归CTE之间的区别。