case when  就相当于 if else  的判断;  语句中少  else   具体语法 一搜索都有。

解决方案 »

  1.   

    能具体点么?菜鸟一只  students是一个表 有sno和name字段
      

  2.   

    set name=(case when sno=1 then 'ddd' when sno=2 then 'jjj' when sno=3 then 'mmm' end)
    相当于:
    if(sno == 1)
      name = 'ddd';
    if(sno == 2)
      name = 'jjj';
    if(sno == 3)
      name ='mmm';
      

  3.   

    when then不会用
    你不会用if else拼接sql语句吗
    非要在SQL语句里做判断吗
      

  4.   

    PL/SQL下执行没有问题
    是啊 但是写到vs2010里就不对了
      

  5.   

    column ‘name’ cannot be null
      

  6.   

    column ‘name’ cannot be null
    else name=‘’
    加上这句看看
      

  7.   

    column ‘name’ cannot be null
    else name=‘’
    加上这句看看
    还是错。说是Unknown column 'neme' in 'field list'简直癫狂了
      

  8.   

    column ‘name’ cannot be null
    else name=‘’
    加上这句看看
    还是错。说是Unknown column 'neme' in 'field list'简直癫狂了
    突然一看  拼写错了 对是对了 但是没修改的数据为‘’了  没了
      

  9.   


    string ss = "update students set name=(case when sno=1 then 'ddd' when sno=2 then 'jjj' when sno=3 then 'mmm'  else '' end)";
      

  10.   


    string ss = "update students set name=(case when sno=1 then 'ddd' when sno=2 then 'jjj' when sno=3 then 'mmm'  ekse '' end)";
      

  11.   

    擦,都没写对。string ss = "update students set name=(case when sno=1 then 'ddd' when sno=2 then 'jjj' when sno=3 then 'mmm'  else '' end)";
      

  12.   

    还是那个问题 没修改的数据清空了
    那肯定啊,你要全表的upedte,又没有给sno=1、2、3之外的情况,我给你加了个''当然会把条件外的数据设置为空了。你试试else name=name
    我不知道能不能这样写。
      

  13.   

    之前的提示也是这个意思,你没有给出sno在1、2、3之外的情况。如果你不想其他的都变成空,在语句最后加上个where sno in('1','2','3')
      

  14.   


    update students set name=(case when sno=1 then 'ddd' when sno=2 then 'jjj' when sno=3 then 'mmm' else name=‘’ end where sno in ('1','2','3'))
      

  15.   

    还是那个问题 没修改的数据清空了
    那肯定啊,你要全表的upedte,又没有给sno=1、2、3之外的情况,我给你加了个''当然会把条件外的数据设置为空了。你试试else name=name
    我不知道能不能这样写。
    这样的话没改的就是1了
      

  16.   

    还是那个问题 没修改的数据清空了
    那肯定啊,你要全表的upedte,又没有给sno=1、2、3之外的情况,我给你加了个''当然会把条件外的数据设置为空了。你试试else name=name
    我不知道能不能这样写。
    这样的话没改的就是1了
    弄混了,我是说我之前给他回的那种。
      

  17.   

    终于对了 谢谢
    顺便问一句 这算不算批量修改?还有哪些批量操作mysql的语句啊?c#的
      

  18.   

    终于对了 谢谢
    这个语句执行效率不高,不建议在大数据库中使用。
    顺便问一句 这算不算批量修改?还有哪些批量操作mysql的语句啊?c#的