第一次来csdn,好兴奋的。请各位大虾们,不吝赐教!
下面有一张表,暂且就叫test表吧,所有字段都是varchar2类型的。
    id       mode1        mode2        mode3
   01234    yeye123      yeye123      yeye123
   01235    yeye234      yeye234      yeye234
   01236    yeye456      yeye456      yeye456 
   01237    yeye789      yeye789      yeye789
   01238    yeye423      yeye423      yeye423我要把id字段里面的数据更新为id字段数据加上mode1字段的数据
得出结果为:
    id                   mode1               mode2         mode3
   01234yeye123         yeye123              yeye123      yeye123
   01235yeye234         yeye234              yeye234      yeye234
   01236yeye456         yeye456              yeye456      yeye456 
   01237yeye789         yeye789              yeye789      yeye789
   01238yeye423         yeye423              yeye423      yeye423用update语句怎么做出来....
假如mode1有为null值的..

解决方案 »

  1.   

    update test set id=id+nvl(model1,'');
      

  2.   

    update test set id = id || mode1;
      

  3.   

    update test set id = id || mode1;
    或者
    update test set id = id || nvl(mode1, '');
      

  4.   

    问题是如果楼主的id字段是数字型的就不能更新成功,会有‘无效数字’的错误提示。所以楼主要首先确定id字段类型。
      

  5.   

    --你这里id应该是字符的吧
    update test set id=id||nvl(mode1,'')
      

  6.   

    直接:
    update test set id = id || mode1;
      

  7.   


    可以的。nvl(mode1,'') 等与 mode1,因为 ''就是 null,白转换了 null叠加非空字符串不能 null哦
    不信可以 试试这个看看
    select * from dual where nvl(null,'') is null;