我正在使用WPF,C#項目和使用SQL Server 2008.我有一個名爲Student_2012_2013的表,其中有一個名爲'class'的varchar(10)列。我需要在每年年底更新學生的課程。例如,如果班級爲'託兒所',則應更新爲'LKG',如果是'LKG'則應更新爲'UKG','UKG'應更新爲班級'1','1'到'2'等等直到'11'到'12'。一個更新中的多個更新條件
我可以在一個UPDATE查詢中做到嗎,或者我需要激發15個不同的更新查詢嗎?
我正在使用WPF,C#項目和使用SQL Server 2008.我有一個名爲Student_2012_2013的表,其中有一個名爲'class'的varchar(10)列。我需要在每年年底更新學生的課程。例如,如果班級爲'託兒所',則應更新爲'LKG',如果是'LKG'則應更新爲'UKG','UKG'應更新爲班級'1','1'到'2'等等直到'11'到'12'。一個更新中的多個更新條件
我可以在一個UPDATE查詢中做到嗎,或者我需要激發15個不同的更新查詢嗎?
您可以使用此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
是否是強制性的?我想我沒有ELSE條件。 – 2013-03-11 07:38:51
@SamarthAgarwal也許,我剛剛加了'ELSE',因爲我在想如果有'class',它不會落在任何情況下。但如果您確定所有情況都會處於最低狀態,請移除「ELSE」。 – 2013-03-11 07:40:16
非常感謝。 使用SQLCommand執行命令時出現以下錯誤:在'THEN'附近預期條件的上下文中指定的非布爾類型表達式。 – 2013-03-11 07:44:21
使用case語句來更新您的表類列。例如:
Update Student_2012_2013
set class = CASE
WHEN (CLASS = "NURSERY) THEN "LKG"
WHEN (CLASS="LKG")THEN "UKG"
ELSE "DEFAULT"
END
難道你不能寫一個查詢並使用IF THEN語句嗎? – Alex 2013-03-11 07:35:49