我正在开发 WPF、C# 项目并使用 SQL Server 2008。我有一个表 Student_2012_2013,其中有一列名为 varchar(10) 的“类”。我需要在每年年底更新学生的课程。例如,如果班级是'Nursery',则应更新为'LKG',如果是'LKG'则应更新为'UKG','UKG'应更新为班级'1','1'到“2”等等,直到“11”到“12”。
我可以在一个 UPDATE 查询中执行此操作,还是需要触发 15 个不同的更新查询?
我正在开发 WPF、C# 项目并使用 SQL Server 2008。我有一个表 Student_2012_2013,其中有一列名为 varchar(10) 的“类”。我需要在每年年底更新学生的课程。例如,如果班级是'Nursery',则应更新为'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
使用 case 语句来更新表中的类列。例如:
Update Student_2012_2013
set class = CASE
WHEN (CLASS = "NURSERY) THEN "LKG"
WHEN (CLASS="LKG")THEN "UKG"
ELSE "DEFAULT"
END