关联子查询Update语句

 --1.创建测试表
    create TABLE Table1
    (
        a varchar(10),
        b varchar(10),
        c varchar(10),
        CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
        (
            a ASC
        )
    ) ON [PRIMARY]

    create TABLE Table2
    (
        a varchar(10),
        c varchar(10),
        CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED
        (
            a ASC
        )
    ) ON [PRIMARY]
    GO
    --2.创建测试数据
    Insert into Table1 values('','asds',null)
    Insert into Table1 values('','asds','100')
    Insert into Table1 values('','asds','80')
    Insert into Table1 values('','asds',null)

    Insert into Table2 values('','90')
    Insert into Table2 values('','100')
    Insert into Table2 values('','80')
    Insert into Table2 values('','95')
    GO
    select * from Table1

    --3.通过Update方式更新
    Update Table1 set c = (select c from Table2 where a = Table1.a) where c is null
    GO

    --4.显示更新后的结果
    select * from Table1
    GO
    --5.删除测试表
    drop TABLE Table1
    drop TABLE Table2
View Code
UPDATE Table1 
SET table1.c = table2.c 
FROM table2 
WHERE Table1.a= table2.a and Table1.c is null

 

posted @ 2017-04-21 14:04  米兰滔滔  阅读(230)  评论(0编辑  收藏  举报