用一个sql语句更新多行,且有多个条件
2009-04-08 11:30
351 查看
这次和C++无关,写一个SQL的技巧。问题如下:
假设我们现在有2个表,名为T1,T2,结构和数据内容分别如下:
我们想把T1中A2列的数据更新为T2中A22列的内容,条件是T1中的A1与T2中的A11相等。即:我们想把T1变成如下内容:
[T1更新后]
有多种方法能实现上述需求,最直接的方法是逐条更新,比如写个存储过程。这种方法的缺点是慢,因为每一条记录都需要一个update操作。最好能用一条Update实现全部更新。笔者经过试验,下列语句是可行的:
Update T1 set A2 = (select A22 from T2 where A1=T2.A11) where A1=(select A11 from T2 where A1=T2.A11);
假设我们现在有2个表,名为T1,T2,结构和数据内容分别如下:
|
|
A1 | A2 |
1 | 3 |
2 | 4 |
有多种方法能实现上述需求,最直接的方法是逐条更新,比如写个存储过程。这种方法的缺点是慢,因为每一条记录都需要一个update操作。最好能用一条Update实现全部更新。笔者经过试验,下列语句是可行的:
Update T1 set A2 = (select A22 from T2 where A1=T2.A11) where A1=(select A11 from T2 where A1=T2.A11);
相关文章推荐
- 【数据库】同一字段根据不同条件更新的sql语句的写法
- 使用SQL查询语句时,数组动态赋值SQL IN ()作为条件条件一个
- 在同一个sql语句中如何写不同条件的count数量 (转)
- 将所有符合条件的结果拼接成一列并用逗号隔开的一个sql语句
- 一个自动生成插入与更新SQL语句的小类
- MySQL:两表更新(用一个表更新另一个表)的SQL语句
- mySQL:两表更新(用一个表更新另一个表)的SQL语句
- sql语句的构造,当where后的条件个数不定,当update set后的更新字段数不定
- Id(int) name(text) 1 网友 2 网友 3 网友 4 网友 5 网友 请写出一个SQL语句,把name字段更新成name+id 也就
- 用一条SQL语句根据条件将数据表中某几列更新到另一个数据表对应有列
- 将所有符合条件的结果拼接成一列并用逗号隔开的一个sql语句
- Transact-SQL 示例 - 一个UPDATE实现多个数据列的条件更新
- 当只有一个输入条件的时匹配数据库表中多个字段模糊查询的SQL语句
- 一个批量更新的sql语句引发的关于创业者心态的思考
- SQL判断一个字段是否为空值条件语句
- SQL语句 使用一个表更新另一个表的方法
- 执行SQL语句时出现问题操作必须使用一个可更新的查询错误的解决方法
- Oracle DB 12.2(12cR2)的一个新特性:硬解析失败的SQL语句(需要符合一定条件)打印到alert_sid.log中.
- Access中用SQL语句将其中一个表的列更新到另一个表的对应列
- 在SQL SERVER中当查询的条件是一个选择范围的SQL语句怎么写?