如何在循环中递增多个变量?`

时间:2016-12-03 21:20:05

标签: sql-server while-loop

我正在尝试执行while循环,但我猜错了一些语法。 我有一个年龄在1871年至2010年之间的专栏。我试图将这些年份分配给一个范围值。就像1871年到18765年之间的所有年份一样,' 1'然后1876年到1880年作为' 2'并且。 我无法正确执行循环。请说清楚。

SQL Server代码:(在尝试增加@ i,@ year时猜测出错了。)

DECLARE @i int = 0,
@year int = 1875,
@yearstart int = 1870

WHILE (@i < 30)
BEGIN
   UPDATE [train]
   SET [YearBuilt] = @i
   WHERE [YearBuilt]  between  @yearstart and  @year 

    SET @i = @i + 1
    SET @year = @year + 5
    SET @yearstart = @year + 6
END

1 个答案:

答案 0 :(得分:2)

添加;以及为什么@year + 6代替+ 5

DECLARE 

@i int = 0,
@year int = 1875,
@yearstart int = 1870

WHILE (@i < 30)
BEGIN
   update train 
   set YearBuilt =@i
   where YearBuilt  between  @yearstart and  @year;
   SET   @i = @i + 1;
   SET   @year = @year + 5;
   SET   @yearstart = @year + 5; 
END