2013-02-27 26 views
1

我試圖做一個CAS將INT更改爲VARCHAR。如何從int到varchar生成CASE?

UPDATE puntentotaal SET Leeftijdhoofdkostwinner = 
(CASE 
    WHEN Punten1 22 THEN 35 jaar en jonger 
    WHEN Punten1 29 THEN 36 t/m 50 jaar 
    WHEN Punten1 39 THEN 51 jaar en ouder 
END) 

爲什麼不工作的代碼?

感謝您的幫助!

回答

6

你只需要引號。此外,您的原始案例陳述可以改進一點:

UPDATE puntentotaal SET Leeftijdhoofdkostwinner = 
(CASE Punten1 
    WHEN 22 THEN '35 jaar en jonger' 
    WHEN 29 THEN '36 t/m 50 jaar' 
    WHEN 39 THEN '51 jaar en ouder' 
    ELSE '' -- You might want to set some sort of value for this; up to you though 
END) 
+0

@JW原來查詢中的另一個錯誤,一開始我沒有記錯。固定。 – 2013-02-27 14:13:32

+1

爲了提高性能,添加'WHERE'子句,例如'... WHERE Punten1 IN(22,29,39)' – 2013-02-27 14:13:50

0

不應該是:?

UPDATE puntentotaal SET Leeftijdhoofdkostwinner = 
(CASE 
    WHEN Punten1 22 THEN '35 jaar en jonger' 
    WHEN Punten1 29 THEN '36 t/m 50 jaar' 
    WHEN Punten1 39 THEN '51 jaar en ouder' 
END)