如何把SQL里表BUS_InvestigateTable中字段为ZDAtt_ZDNum1ber和ZDAtt_PrepZDNumber两列中开头为2-的改为1-,比如2-5-5-1改为1-5-5-1,量比较大,请高手指点,最好有代码,谢谢。

解决方案 »

  1.   

    update BUS_InvestigateTable set ZDAtt_ZDNum1ber=replace(ZDAtt_ZDNum1ber,'2-','1-'), 
     ZDAtt_PrepZDNumber=replace(ZDAtt_PrepZDNumber,'2-','1-')
      

  2.   

    update BUS_InvestigateTable set ZDAtt_ZDNum1ber=case when substring(ZDAtt_ZDNum1ber,1,2)='2-' then '1-'+substring(ZDAtt_ZDNum1ber,3,len(ZDAtt_ZDNum1ber)) else ZDAtt_ZDNum1ber end,
    ZDAtt_PrepZDNumber=case when substring(ZDAtt_PrepZDNumber,1,2)='2-' then '1-'+substring(ZDAtt_PrepZDNumber,3,len(ZDAtt_PrepZDNumber)) else ZDAtt_PrepZDNumber end
      

  3.   

    采用mengguangjie 的语句,类似 '1-2-5-5'的数据也会被更新, smalltalks 的答案更严谨
    建议update前备份一下,这样出错了也能复原。