update 表 set 字段4=(select tem.字段2 from 表 tem where tem.字段3=表.字段5),
字段6=(select tem.字段1 from 表 tem where tem.字段3=表.字段5)
where 字段4 is null

解决方案 »

  1.   

    update 表 set 字段4=tem.字段2,字段6=tem.字段1 from (select * from 表) tem where 表.字段4 is null and 表.字段3=tem.字段5
      

  2.   

    TRY:
    update 表 set 
    字段6 =
      case 
        when 字段3=0 then 字段3 
        else (select 字段1 from 表 aa 
                where 
                  aa.字段3 =
                    left
                    (
                      表.字段3
                      ,len(表.字段3)-charIndex('.',REVERSE(表.字段3))
                     )
             )
      end
      

  3.   

    更正,因为你的字段5已经保存了我上面语句中的查询出的值,所以简化成:
    update 表 set 
    字段6 =
      case 
        when 字段3=0 then 字段3 
        else (select 字段1 from 表 aa 
                where aa.字段3 =表.字段5)
        end
    ,字段4=
        case 
        when 字段3=0 then 字段3 
        else (select 字段2 from 表 aa 
                where aa.字段3 =表.字段5)
        end