表A:
id        Num         name
1          11           aa     
2          22           bb     
3          aa                
4          bb                              怎么将name为空的Num修改为与之相同(Num=name)的Num
如得到的结果应该为:id        Num         name
1          11           aa   
2          22           bb   
3          11            
4          22            

解决方案 »

  1.   

    update a 
    set num=b.num
    from a b join a on a.num=b.name
      

  2.   

    -- =========================================
    -- -----------t_mac 小编-------------------
       --------------------希望有天成为大虾---- 
    -- =========================================IF OBJECT_ID('A') IS NOT NULL
    DROP TABLE A
    GO
    CREATE TABLE A( id  int, Num varchar(10), name varchar(10) )
    go
    insert A SELECT 
    1         , '11'         , 'aa'    UNION ALL SELECT 
    2         , '22'         , 'bb'    UNION ALL SELECT 
    3         , 'aa'         ,  NULL     UNION ALL SELECT 
    4         , 'bb'  ,  NULL
    GO
    update a 
    set num=b.num
    from a b join a on a.num=b.nameSELECT * FROM Aid          Num        name
    ----------- ---------- ----------
    1           11         aa
    2           22         bb
    3           11         NULL
    4           22         NULLgo
      

  3.   

    UPDATE A SET
        num = B.num
    FROM tb AS A
        JOIN tb AS B
    ON A.name IS NULL AND B.name IS NOT NULL
        AND A.num = B.name;
      

  4.   

    -- =========================================
    -- -----------t_mac 小编-------------------
       --------------------希望有天成为大虾---- 
    -- =========================================IF OBJECT_ID('A') IS NOT NULL
    DROP TABLE A
    GO
    CREATE TABLE A( id  int, Num varchar(10), name varchar(10) )
    go
    insert A SELECT 
    1         , '11'         , 'aa'    UNION ALL SELECT 
    2         , '22'         , 'bb'    UNION ALL SELECT 
    3         , 'aa'         ,  ''     UNION ALL SELECT 
    4         , 'bb'  ,  ''
    GO
    update a 
    set num=b.num
    from a b join a on a.num=b.nameSELECT * FROM Aid          Num        name
    ----------- ---------- ----------
    1           11         aa
    2           22         bb
    3           11         
    4           22         
    go
      

  5.   

    IF OBJECT_ID('A') IS NOT NULL
    DROP TABLE A
    GO
    CREATE TABLE A( id  int, Num varchar(10), name varchar(10) )
    go
    insert A SELECT 
    1         , '11'         , 'aa'    UNION ALL SELECT 
    2         , '22'         , 'bb'    UNION ALL SELECT 
    3         , 'aa'         ,  null    UNION ALL SELECT 
    4         , 'bb'  ,  null
    go
    update a 
    set num=b.num
    from a b join a on a.num=b.name
    where a.name is nullSELECT * FROM A