update test set name = case when id = 7 then 'LL1' when id = '8' else name end;

解决方案 »

  1.   

    UPDATE fscnetquery SET NetSts=CASE WHEN NetResult='21公民身份号码不存在' or NetResult='22公民身份号码存在,但与姓名不匹配' THEN NetSts='0' WHEN NetResult='11身份证地区编码错误' or NetResult='12身份证生日不在有效范围' or NetResult='13身份证无效,不是合法的身份证号码' THEN NetSts='1' WHEN NetResult='91公民身份号码与姓名一致,且存在照片' or NetResult='92公民身份号码与姓名一致,但不存在照片' THEN NetSts='9' ELSE NetSts END 改成这样后,数据库提示我THEN NetSts后不能跟=,求大神解决
      

  2.   

    首先你要搞清楚case when的用法
    case when最终得到的结果是一个值,而不是多个值,更不是赋值。你写的就是赋值了。
    你是要更新么?
    update 表 set b = (case A when 1 then 1 else 0 end),  c = (case A when 1 then 0 else 1 end)我自己给自己解决算了
      

  3.   


    UPDATE fscnetquery SET NetSts=CASE WHEN NetResult in ('21公民身份号码不存在' ,'22公民身份号码存在,但与姓名不匹配') THEN  '0'  WHEN NetResult in ('11身份证地区编码错误','12身份证生日不在有效范围','13身份证无效,不是合法的身份证号码') THEN '1' WHEN NetResult in ('91公民身份号码与姓名一致,且存在照片' ,'92公民身份号码与姓名一致,但不存在照片') THEN '9' ELSE NetSts END 
      

  4.   


    UPDATE fscnetquery SET NetSts=CASE WHEN NetResult in ('21公民身份号码不存在' ,'22公民身份号码存在,但与姓名不匹配') THEN  '0'  WHEN NetResult in ('11身份证地区编码错误','12身份证生日不在有效范围','13身份证无效,不是合法的身份证号码') THEN '1' WHEN NetResult in ('91公民身份号码与姓名一致,且存在照片' ,'92公民身份号码与姓名一致,但不存在照片') THEN '9' ELSE NetSts END 结贴 分都是你的啦