2013-03-11 45 views
0

我正在使用WPF,C#項目和使用SQL Server 2008.我有一個名爲Student_2012_2013的表,其中有一個名爲'class'的varchar(10)列。我需要在每年年底更新學生的課程。例如,如果班級爲'託兒所',則應更新爲'LKG',如果是'LKG'則應更新爲'UKG','UKG'應更新爲班級'1','1'到'2'等等直到'11'到'12'。一個更新中的多個更新條件

我可以在一個UPDATE查詢中做到嗎,或者我需要激發15個不同的更新查詢嗎?

+0

難道你不能寫一個查詢並使用IF THEN語句嗎? – Alex 2013-03-11 07:35:49

回答

3

您可以使用此CASE

UPDATE Student_2012_2013 
SET  class = CASE WHEN class = 'Nursery' THEN 'LKG' 
        WHEN class = 'LKG' THEN 'UKG' 
        WHEN class = 'UKG' THEN '1' 
        // WHEN ... continue with your conditions... 
        ELSE class // if it doesn't match to any condition 
       END 
+0

是否是強制性的?我想我沒有ELSE條件。 – 2013-03-11 07:38:51

+0

@SamarthAgarwal也許,我剛剛加了'ELSE',因爲我在想如果有'class',它不會落在任何情況下。但如果您確定所有情況都會處於最低狀態,請移除「ELSE」。 – 2013-03-11 07:40:16

+0

非常感謝。 使用SQLCommand執行命令時出現以下錯誤:在'THEN'附近預期條件的上下文中指定的非布爾類型表達式。 – 2013-03-11 07:44:21

2

使用case語句來更新您的表類列。例如:

Update Student_2012_2013 
set class = CASE 
     WHEN (CLASS = "NURSERY) THEN "LKG" 
     WHEN (CLASS="LKG")THEN "UKG" 
     ELSE "DEFAULT" 
    END