博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Oracle-更新字段-一张表的字段更新另一张的表的字段
阅读量:5364 次
发布时间:2019-06-15

本文共 926 字,大约阅读时间需要 3 分钟。

 

设备表ops_device_info中的终端号terminal_id值是以 'D'开头的字符串,而终端表ops__terminal_info中的终端号terminal_id是8位字符串, 它们之间是通过device_id关联的.

ops_device_info 1-->n   ops_terminal_info

现在希望将设备表中的终端号更改为终端表中的终端号.

 

终端状态 4代表移机 5代表调试  6代表暂停  7代表启用  8代表报废  9代表停用

 

 

方式一:

update  ops_device_info d set d.terminal_id = (select t.terminal_id from ops_terminal_info t  where t.device_id=d.device_id and d.terminal_id like 'D%' and t.terminal_state not in ('8','9'))  where exists  (select t.terminal_id from ops_terminal_info t  where t.device_id=d.device_id and d.terminal_id like 'D%' and t.terminal_state not in ('8','9'));

方式二:

merge into OPS_DEVICE_INFO t1using OPS_TERMINAL_INFO t2on (t1.device_id = t2.DEVICE_ID and t2.TERMINAL_STATE not in ('8','9'))when matched then  Update     set t1.TERMINAL_ID = t2.TERMINAL_ID   where t1.terminal_id like 'D%';

 

SQl执行过程中如果出现 '单行子查询返回多行记录',那可能是你的数据本身有点重复。; 可以使用 我的另一个sql查询一下重复数据  .

 

转载于:https://www.cnblogs.com/yangw/p/4535221.html

你可能感兴趣的文章
零散笔记
查看>>
信息浏览器从Android的浏览器中传递cookie数据到App中信息浏览器
查看>>
hash储存机制
查看>>
HI3531uboot开机画面 分类: arm-linux-Ubunt...
查看>>
搭建ssm过程中遇到的问题集
查看>>
OpenLayers绘制图形
查看>>
tp5集合h5 wap和公众号支付
查看>>
Flutter学习笔记(一)
查看>>
iOS10 国行iPhone联网权限问题处理
查看>>
洛谷 P1991 无线通讯网
查看>>
mysql asyn 示例
查看>>
数据库第1,2,3范式学习
查看>>
《Linux内核设计与实现》第四章学习笔记
查看>>
Docker 安装MySQL5.7(三)
查看>>
CSS: caption-side 属性
查看>>
CSS3中box-sizing的理解
查看>>
Web.Config文件配置之配置Session变量的生命周期
查看>>
mysql导入source注意点
查看>>
linux下编译安装nginx
查看>>
DLL 导出函数
查看>>