我正在尝试执行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
答案 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