1818IP-服务器技术教程,云服务器评测推荐,服务器系统排错处理,环境搭建,攻击防护等

当前位置:首页 - 数据库 - 正文

君子好学,自强不息!

以下的文章主要讲述的是Oracle多表关联中的update语句的实际应用,为了使大家更为仔细的看明白其实际的操作步骤,我们建立了下面的简单模型与构造一部分的测试数据:在某个业务受理子系统BSS中,

客户资料表

createtablecustomers 
( 
customer_idnumber(8)notnull, 

客户标示

city_namevarchar2(10)notnull,

所在城市

customer_typechar(2)notnull,

客户类型

... 
) 
createuniqueindexPK_customersoncustomers(customer_id) 

由于某些原因,客户所在城市这个信息并不什么准确,但是在

客户服务部的CRM子系统中,通过主动服务获取了部分客户20%的所在

城市等准确信息,于是你将该部分信息提取至一张临时表中:

createtabletmp_cust_city 
( 
customer_idnumber(8)notnull, 
citye_namevarchar2(10)notnull, 
customer_typechar(2)notnull 
) 

1) 最简单的形式

经确认customers表中所有customer_id小于1000均为’北京’

1000以内的均是公司走向全国之前的本城市的老客户:)

updatecustomers

set city_name=’北京’

wherecustomer_id<1000

2) 两表(多表)关联Oracle update 仅在where字句中的连接

这次提取的数据都是VIP,且包括新增的,所以顺便更新客户类别

updatecustomersa

使用别名

setcustomer_type='01'

01 为vip,00为普通

whereexists(select1 
fromtmp_cust_cityb 
whereb.customer_id=a.customer_id 
) 

3) Oracle 两表(多表)关联update 被修改值由另一个表运算而来

updatecustomersa

使用别名

setcity_name=(selectb.city_namefromtmp_cust_citybwhereb.customer_id=a.customer_id) 
whereexists(select1 
fromtmp_cust_cityb 
whereb.customer_id=a.customer_id 
) 

本文来源:1818IP

本文地址:https://www.1818ip.com/post/11132.html

免责声明:本文由用户上传,如有侵权请联系删除!

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。