日期:2014-05-18  浏览次数:20532 次

update 的时候使用 case when
学生表
学生ID 学生名 体重 学生所在班ID


现在想修改学生的信息,也就是修改姓名、体重两项。
一般的修改是这样的
UPDATE [test].[dbo].[Student]
  SET[Name] = '英雄', 
weight=555
 WHERE sid='S0004'

现在有个特殊的要求,就是只修改该生在111班的姓名值,在其它班的姓名不变,也就是说,允许一个学生有多个姓名

UPDATE [test].[dbo].[Student]
  SET case when classid = 111 then [Name] = '英雄' end, 
weight=555
 WHERE sid='S0004'

这样写报错

------解决方案--------------------
SQL code
UPDATE [test].[dbo].[Student]
  SET [Name] = case when classid = 111 then  '英雄' else name end,  
weight=555
 WHERE sid='S0004'

------解决方案--------------------
UPDATE [test].[dbo].[Student]
SET [Name] = case when classid = 111 then '英雄' else name end, 
weight=555
 WHERE sid='S0004'
------解决方案--------------------
SQL code
UPDATE [test].[dbo].[Student]
SET name = case when classid = 111 then  '英雄' else name end, weight=555
WHERE sid='S0004'