oracle 多值更新,oracle 同时更新(update)多个字段多个值

--创建表A,B:

create table A (a1 varchar2(33),a2 varchar2(33),a3 varchar2(33));

create table B (b1 varchar2(33),b2 varchar2(33),b3 varchar2(33));

--插入数据

insert into A values('1','aa','100');

insert into A values('2','bb','100');

insert into A values('3','cc','');

insert into A values('4','dd','200');

insert into B values('1','XX','10000');

insert into B values('2','YY','10000');

insert into B values('4','ZZ','20000');

insert into B values('5','KK','');

commit;

--更新前的表A,B:

80dddd6b9b4ee7f98b27997ee73b3e0d.gif                   

cbc2b291ccd80f5d46c82edcd7f1f131.gif

--对表A的a2,a3进行更新(带条件);

update  A

set (A.a2,A.a3) =(select B.b2,b.b3

from  B

where B.b1= A.a1 and A.a3=100

)

where exists

(select 'X' from B where B.b1=A.a1 and A.a3=100)  ;

commit;

--或者:

update  A

set (A.a2,A.a3 )=

(select B.b2,b.b3

from  B

where B.b1= A.a1 and A.a3=100

)

where (A.a1) in (select

B.b1 from  B

where B.b1 = A.a1

and A.a3 =100

);

commit;

--更新后的表A:

1e3b7af80a6ab6afb09541f7e8050581.gif

ORACLE 关连更新 update select

总结:  关键的地方是where 语句的加入. 在11G中, 如果不加11G , 或造成除匹配的行数更新为相应的值之后, 其余的会变成负数. 所以, 测试的办法就是:  先查看需要更新的数量即连接的数 ...

oracle 中更新update不成功的原因

oracle 中执行insert into 与delete 都正常,但是执行update 却没有反应. 原因: 是因为记录锁.这种只有update无法执行其他语句可以执行的其实是因为记录锁导致的,在o ...

Oracle中用一张表的字段更新另一张表的字段

今天在做项目的过程中,发现开发库中某张表的某字段有许多值是空的,而测试库中该字段的值则是有的. 那么,有什么办法能将测试库中该字段的值更新到开发库中呢? SQL Server中这是比较容易解决的,而O ...

oracle 批量更新之update case when then

oracle 批量更新之update case when then CreationTime--2018年8月7日15点51分 Author:Marydon 1.情景描述 根据表中同一字段不同情况 ...

oracle 批量更新表字段

(一) 将数字替换成汉字 第一步,去重查询 使用distinct关键字先对该字段值进行去重查询,看共有几种情况 --查询指定区间内表停诊字段的值 SELECT DISTINCT T.CLOSE_T ...

Oracle的timestamp字段更新实验 结论:只有逐条更新才能保证timestamp字段有差别,批量更新只会得到一致的时间,此操作无关时间精度.

有这么一张表: create table hy_testtime( id number(6,0) not null primary key, name nvarchar2(20) not null, ...

Oracle数据库更新时间的SQL语句

---Oracle数据库更新时间字段数据时的sql语句---格式化时间插入update t_user u set u.name='pipi',u.modifytime=to_date('2015-10 ...

oracle批量更新之使用游标进行分批次更新的5种方式及速度比对

1.情景展示 一共有22w条数据, 需要将A表的主键更新至B表的指定字段,如何快速完成更新? 2.解决方案 声明: 解决方案不只一种,该文章只介绍快速游标法及代码实现: 两张表的ID和ID_CAR ...

oracle 批量更新之将一个表的数据批量更新至另一个表

oracle 批量更新之将一个表的数据批量更新至另一个表 CreationTime--2018年7月3日17点38分 Author:Marydon Oracle 将一个表的指定字段的值更新至另一个 ...

Oracle 中for update和for update nowait的区别

http://www.cnblogs.com/quanweiru/archive/2012/11/09/2762223.html 1.for update 和 for update nowait 的区 ...

随机推荐

android手动修改density(dpi)的方法

Android系统中会根据屏幕分辨率范围,制定默认的density,既320(xhdpi),那么我们也可以手动修改density. 修改的方式在system.prop中修改ro.sf.lcd_dens ...

C# 获取本机指定类型指定网卡的Ip地址

1.简单方式 ,适用于单网卡 string hostName = Dns.GetHostName(); IPAddress[] addresses = Dns.GetHostAddresses(hos ...

C8051 PCA实现红外遥控接收

这里使用的处理器是C8051F005.红外接收头接处理器引脚,中断方式接收按键数据. 一 PCA介绍 1.1 PCA 可编程计数器阵列(PCA)提供增强的定时器功能,与标准8051计数器/定时器相比, ...

浅谈MySQL索引背后的数据结构及算法(转载)

转自:http://blogread.cn/it/article/4088?f=wb1 摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储 ...

ORACLE创建、修改、删除序列

ORACLE没有象SQL SERVER中一样的自增加字段,要实现只能通过SEQUENCE来实现. 1.创建序列语法:(需要CREATE SEQUENCE系统权限) CREATE SEQUENCE 序列 ...

Makefile持续学习二

Makefile概述 一.Makefile里有什么? Makefile里主要包含5个东西:显式规则.隐晦规则.变量定义.文件指示和注释 1.显式规则:显式规则说明如恶化生成一个或多的目标文件,包含要生 ...

SuperMap GIS资料-----云与Web端技术资料集锦

转自:http://blog.csdn.net/supermapsupport/article/details/70254484 产品白皮书 iServer产品  教学视频  许可说明  安装部署   ...

Contest Setting 2018 ICPC Pacific Northwest Regional Contest dp

题目:https://vj.69fa.cn/12703be72f729288b4cced17e2501850?v=1552995458 dp这个题目网上说是dp+离散化这个题目要对这些数字先处理然后进 ...

LeetCode 520 Detect Capital 解题报告

题目要求 Given a word, you need to judge whether the usage of capitals in it is right or not. We define ...

关于jsp页面的一些知识(一)

1, ——最简洁易懂的解释 http://blog.csdn.net/little_stars/article/details/17373477 ...

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值