update 表 set 职务 = (select 职务 from 表 where 姓名='张三') 
where isnull(职务,'') = ''

解决方案 »

  1.   

    update tablename set  职务 = (select 职务 from where rtrim(ltrim(姓名)) = '张三') 
    where 职务 is null or len(职务) = 0
      

  2.   

    如果我有很多个字段(几十个)要做更新,用这种方法要写很长的一段代码,是否有简单一些的方法?
    例如:
    update 表 set 职务 = (select 职务 from 表 where 姓名='张三') ,
    性别 = (select 性别 from 表 where 姓名='张三') ,
    ...
    where isnull(职务,'') = ''
      

  3.   

    -- TRY:
    UPDATE a
    SET a.职务 = b.职务,a.性别 = b.性别
    FROM T a,
    (SELECT * FROM T WHERE 姓名 = '张三' ) b
    WHERE ISNULL(a.职务,'') = ''
      

  4.   

    UPDATE a
    SET a.职务 = b.职务,a.性别 = b.性别
    FROM T a,
    (SELECT top 1 * FROM T WHERE 姓名 = '张三' ) b
    WHERE ISNULL(a.职务,'') = ''