第一次来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.   

    id有没有设置为主键呢
    update test set id=id+nvl(model1,'');
    这个意思是说id改为id和model1的值,如果model1为NULL,则用''代替,转换后的id还是id
      

  3.   

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

  4.   

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

  5.   

    --update test set id=to_char(id)||nvl(mode1,'')
      

  6.   

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

  7.   


    --Oracle语法,如果id为非char型 则转,反之不需要.UPDATE test set id = to_char(id)||nvl(model1,'');
    --MS SQL语法,C1为非varchar类型时的考虑。SELECT *,CAST(ISNULL(C1,'') AS varchar(10))+C2 FROM tx;