2016-12-03 48 views
0

我想執行一個while循環,但缺少一些我猜的語法。 我有一個專欄,年份從1871年到2010年不等。我試圖將這些年份分配到一個範圍內的值。與1871年到18765年之間的所有年份一樣,'18'年,1876年至1880年爲'2'年。 我無法正確執行循環。請說明一下。如何增加一個循環中的多個變量?

SQL Server代碼:(當試圖增加@我,@今年猜測什麼是錯的..)

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 [email protected] 
    where YearBuilt between @yearstart and @year; 
    SET @i = @i + 1; 
    SET @year = @year + 5; 
    SET @yearstart = @year + 5; 
END 
+0

嗨!胡安。您的建議編輯無法解決我的問題。我仍然無法使我所有年份的內容在正常情況下保持正常。這是爲什麼?循環執行不好嗎? –

+0

更具體一些,問題是什麼? –

+0

我得到了答案。我只是做了一個邏輯錯誤。我忘了添加'開始',同時在$ yeartart中增加(請參閱我的文章),非常感謝正確的我的語法SET屬性@juan –