利用带关联子查询Update语句更新数据
2014-02-14 10:03
411 查看
Update是T-sql中再简单不过的语句了,update table set column=expression [where condition],我们都会用到。但update的用法不仅于此,真正在开发的时候,灵活恰当地使用update可以达到事半功倍的效果。
假定有表Table1(a,b,c)和Table2(a,c),现在Table1中有些记录字段c为null,要根据字段a在Table2中查找,取出字段a相等的字段c的值来更新Table1。一种常规的思路,通过游标遍历Table1中字段c为null的所有记录,在循环体内查找Table2并进行更新,即用游标Cursor的形式。测试sql语句如下:
使用带关联子查询的Update更新
假定有表Table1(a,b,c)和Table2(a,c),现在Table1中有些记录字段c为null,要根据字段a在Table2中查找,取出字段a相等的字段c的值来更新Table1。一种常规的思路,通过游标遍历Table1中字段c为null的所有记录,在循环体内查找Table2并进行更新,即用游标Cursor的形式。测试sql语句如下:
--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
使用带关联子查询的Update更新
相关文章推荐
- unsupported major.minor version 解决方法
- 6 个重构方法可帮你提升 80% 的代码质量
- Bootstrap模态框的简单示例
- Pat(Advanced Level)Practice--1015(Reversible Primes)
- SOURCE ANYWHERE
- Java多线程学习总结--线程同步(2)
- poj 1562 Oil Deposits (广搜,简单)
- SMT离线编程软件,SMT编程软件,最专业的SMT编程软件,首选JDS,smt... SMTI离线编程软件:适用于所有 SMT & AI 设备。JDS编程软件是目前最专业最好用的SMT编程软件,具有“
- c# 类成员的定义 定义方法、字段和属性【转】
- MyEclipse安装后需要进行的配置
- 自己写的一道题
- Google Protocol Buffer 的使用和原理
- hdu2680 Choose the best route 最短路(Dijkstra算法)
- c#无限级分类
- Spring 与其他ORM 框架结合 作数据持久层解析 (转)
- 【转】算法的流程图表示
- (GAE)Google App Engine入门程序——helloworld
- Android的activity的title设定内容
- 杨辉三角
- 重置MySQL密码