sql - Oracle - 使用第二个表中的行更新第一个表中的数据
问题描述
如何在 20/07/20 时使用 'modfied' (t2) 更新 'date_from' (t1)。
所以在这种情况下,在 t1 中,id 的 1 和 2 将被更新,id 3 保持不变。
表格1:
id date_from
-----------------------
1 13/07/30
2 13/07/30
3 13/07/30
表 2:
id name modified
-----------------------
1 x 20/07/20
2 y 20/07/20
3 z 19/05/10
解决方案
如果速度很重要,那么
merge into t1 trg
using
(
select id, modified
from t2
where modified = date'2020-07-20'
) src
on ( trg.id = src.id )
when matched then update
set trg.date_from = src.modified
where lnnvl(trg.date_from = src.modified);
推荐阅读
- python - 在python中将UTC日期时间转换为本地日期时间
- nativescript - 在 Nativescript 代码共享项目中使用 Angular 库
- javascript - 带复选框的字段验证
- ios - AVAudioSession - 如何在扬声器和耳机输出之间切换
- sql - CASE in WHERE 子句 SQL VBA Excel
- python - Python Numpy:循环中的随机数
- ruby-on-rails - Ruby on Rails 应用程序部署到 heroku 但应用程序错误?
- ios - GLKit,Opengl ES 3.0,使用 glReadPixels 获取深度
- php - sumbit:php 后我得到一个空帖子
- r - 根据多列获取最新记录 - R