Oracle两表关联执行update时,因为没有像SqlServer的update from,因此要麻烦一些,通常有以下四种方式:

第一种:更新的条件为两个表的查询关联

update customers a – 使用别名

set customer_type=’01′ –01 为vip,00为普通

where exists (select 1

from tmp_cust_city b

where b.customer_id=a.customer_id

)

第二种:更新的条件为两个表的查询关联,值为查询值

update customers a — 使用别名

set city_name=(select b.city_name from tmp_cust_city b where b.customer_id=a.customer_id)

where exists (select 1

from tmp_cust_city b

where b.customer_id=a.customer_id

)

第三种: update 超过2个值

update customers a — 使用别名

set (city_name,customer_type)=(select b.city_name,b.customer_type

from tmp_cust_city b

where b.customer_id=a.customer_id)

where exists (select 1

from tmp_cust_city b

where b.customer_id=a.customer_id

)

第四种,使用视图方式更新,这样能避免对B表或其索引的2次扫描,但前提是 A(customer_id) b(customer_id)必需是unique index

或primary key。否则报错:

update (select a.city_name,b.city_name as new_name

from customers a,

tmp_cust_city b

where b.customer_id=a.customer_id

)

set city_name=new_name

oracle两条update语句怎么写,Oracle两表关联执行update语句代码相关推荐

  1. 在ABAP的SQL语句中写Oracle Hints

    在ABAP的SQL语句中写Oracle Hints ①用过的两个写法: 1.指定使用全表扫描:%_HINTS ORACLE 'FULL(table_name)' 2.指定索引:%_HINTS ORAC ...

  2. 多表关联的update语句

    MSSql的多表关联的update语句 例如A表 存在一下字段: AID A1 A2 A3 A4 B表中存在字段: BID B1 B2 B3 B4 如果实现用B表的所有字段更新A表中相应的字段,在MS ...

  3. c语言解析sql语句_如何在C语言里面执行SQL语句?

    一.为什么要在C语言程序中执行SQL语句? 在C语言程序中执行SQL语句的原因有以下几个: (1)程序需要获取数据库中某数据表的字段值,并对这些字段值进行解析以执行后续操作. (2)程序需要更新数据库 ...

  4. oracle一条sql运行时间很长,oracle查看执行最慢与查询次数最多的sql语句及其执行速度很慢的问题分析...

    oracle查看执行最慢与查询次数最多的sql语句 前言 在ORACLE数据库应用调优中,一个SQL的执行次数/频率也是常常需要关注的,因为某个SQL执行太频繁,要么是由于应用设计有缺陷,需要在业务逻 ...

  5. oracle sql循环判断语句怎么写,Oracle 非常详细的 PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理...

    PL/SQL入门教程目录 Oracle PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理 一.PL/SQL简介 1.PL/SQL简介 1.PL/SQl是过程语言PL与结构化语言 ...

  6. delete oracle 语句怎么写,Oracle下Delete语句

    Delete语句 基本语法: delete from 表名 where 条件 注意事项: 1,如果不使用where子句,将表中所有数据全部删除 delete from test; 2,如果要删除某列的 ...

  7. Oracle\MS SQL Server的数据库多表关联更新UPDATE与多表更新

    一条Update更新语句是不能更新多张表的,除非使用触发器隐含更新.而表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据.我们先来讨论根据其他表数据更新你要更新的表 一.MS    S ...

  8. oracle执行语句出无效字符,pl/sql动态执行sql语句时报错:ORA-00911: 无效字符 ORA-06512: 在 line 14...

    今天测试的时候遇到两个错误提醒,写下来给自己提个醒: --建测试表 create table test_table(tablename varchar2(50),selectsql clob); in ...

  9. mysql数据库添加数据语句怎么写_mysql中多种插入数据的语句

    摘抄自:https://yjclsx.blog.csdn.net/article/details/83898545 mysql中常用的三种插入数据的语句 insert into表示插入数据,数据库会检 ...

最新文章

  1. js回调函数和函数带参数的使用示例
  2. python之33个关键字详解_Python 中的关键字 with 详解
  3. IIS启动时出现0x8ffe2740的错误
  4. 转: ashx中使用Session
  5. VC++实现对远程计算机屏幕的监视
  6. flask html 路径,【Python】Flask 怎样获取当前页面的相对路径
  7. spring4.x(4)--SpringIOC的HelloWorld
  8. 多选框中的选中的值和未选中值的获取
  9. matlab2c使用c++实现matlab函数系列教程-zeros函数
  10. [转载] 使用openpyxl模块向Excel中插入图片
  11. 剑指Offer——Python答案
  12. C# 设置鼠标光标为自定义图片
  13. 计算机桌面word不见怎么办,电脑桌面word 电脑桌面上word不见了怎么办
  14. 2 SAP SCC1同一服务器传请求号
  15. 支付宝|微信|h5|个人收款免签约支付系统源码
  16. c语言RLC算法,「百科」1分钟了解RC、RL、RLC电路原理
  17. 一分钟了解Mysql的间隙锁——《深究Mysql锁》
  18. 绘制2019-nCoV动态疫情地图
  19. Springboot项目install打包-某些输入文件使用了未经检查或不安全的操作。分析与解决
  20. iOS-自定义键盘选择器

热门文章

  1. 【C++】正则表达式
  2. linux7如何删除用户,如何在CentOS 7上添加和删除用户
  3. 外贸业务管理系统,外贸CRM管理系统,外贸客户管理软件CRM排名
  4. sqoop工具数据迁移
  5. 四.JavaScript(一) 2021-02-23
  6. 完整的虚拟机安装步骤
  7. 虚拟机的基本操作命令
  8. html 特殊字符 三角形,最全的特殊字符!
  9. Keras-深度学习-神经网络-电影评论情感分析模型
  10. vue解决跨域问题-反向代理Proxy