在执行这些操作之前,建议先备份数据或在一个测试环境中验证这些SQL语句的效果,以避免意外的数据丢失。

1、使用 UPDATE 结合子查询:

对于t2表中col字段为空的记录,如果t1表中有对应的col值相同的记录,则使用t1表中的col1和col2字段值更新t2表的相关字段。

UPDATE t2
SET (col1, col2) = (SELECT t1.col1, t1.col2
FROM t1
WHERE t1.col = t2.col)
WHERE EXISTS (SELECT 1
FROM t1
WHERE t1.col = t2.col)
AND t2.col1 IS NULL;

2、如果没有非空条件,可使用MERGE 语句。oracle不支持MERGE 增加条件。

根据t1表中的数据更新t2表中的记录,如下

MERGE INTO t2
USING t1
ON (t1.col = t2.col)
WHEN MATCHED THEN
UPDATE SET
t2.col1 = t1.col1,
t2.col2 = t1.col2;

Q:oracle库,同时更新表的两个字段?的更多相关文章

  1. C# Oracle.ManagedDataAccess 批量更新表数据

    这是我第一次发表博客.以前经常到博客园查找相关技术和代码,今天在写一段小程序时出现了问题, 但在网上没能找到理想的解决方法.故注册了博客园,想与新手分享(因为本人也不是什么高手). vb.net和C# ...

  2. sql一个表中两个字段合并求和

    sql一个表中两个字段,合并求和 SELECT SUM(字段a+'.'+字段b) as total  from TABLE

  3. mysql 查看某个库下面某个表的所有列字段, columnName

    mysql 查看某个库下面某个表的所有列字段 select COLUMN_NAME as columnName from information_schema.COLUMNS where table_ ...

  4. KETTLE 更新表的两种方式-更新控件和sql更新 2种方式的实现比较

    在实际工作中,我们有可能遇见只更新不插入的情况,可以由以下2种方式去实现: 1.更新控件 如下图所示,根据id字段,更新name和cjsj时间字段 该控件不足的地方是,用来查询关键值得字段不够灵活,一 ...

  5. Sql中如何将数据表的两个字段的值如何互换?

    今天遇到一个数据表的两个列数据要互换,在网上找到并记录下. 直接用Sql就可以搞定,语法如下 --将数据表中两个列数据互换的语法-- update tabName set field1=field2, ...

  6. 一条SQL语句查询两表中两个字段

    首先描述问题,student表中有字段startID,endID.garde表中的ID需要对应student表中的startID或者student表中的endID才能查出grade表中的name字段, ...

  7. 一个表的两个字段具有相同的类型。如何仅用SQL语句交换这两列的数据?

    --假设为A B两个字段--查询Select A As B, B As A From TableName --更新Update TableName Set A = B, B = A

  8. Oracle中新建数据表的两种方法

    首发微信公众号:SQL数据库运维 原文链接:https://mp.weixin.qq.com/s?__biz=MzI1NTQyNzg3MQ==&mid=2247485212&idx=1 ...

  9. sql一张表中两个字段指向同一个外键

    在项目开发中遇到这么一个例子,首先产品表 tb_product ----------------------------- id    name 1     手机 2    电脑 3     笔记本 ...

  10. MySQL 一张表中两个字段值互换

    update table a, table b set a.filed1= b.field2, a.field2= b.field1where a.id = b.id

随机推荐

  1. git之常见问题

    1. You are in the middle of a merge -- cannot amend 场景:上一次提交,本次提交与上次修改点是同一个, 覆盖是的提交,产生的错误 解决方案: git ...

  2. win7下使用Aero2主题错误

    开发了一个gui工具,有同事在win7环境下发现界面无法加载出来. 经过调试发现,在view初始化的过程中,提示PresentationFramework.Aero2无法加载,异常信息如下: {Sys ...

  3. VMpwn总结

    前言: 好久没有更新博客了,关于vm的学习也是断断续续的,只见识了几道题目,但是还是想总结一下,所谓vmpwn就是把出栈,进栈,寄存器,bss段等单独申请一块空闲实现相关的功能,也就是说一些汇编命令通 ...

  4. sort算法的使用

    sort算法的使用 望文生义,sort是STL内置的一个排序算法,其底层是由多个排序算法的配合的使用. 需要包含的头文件 #include<algorithm> 使用 sort(参数1,参 ...

  5. 安装Spring源码时报错No such property: values for class: org.gradle.api.internal.tasks.DefaultTas

    IDEA进行项目拉取时:No such property: values for class: org.gradle.api.internal.tasks.DefaultTas 修改spring-be ...

  6. 【转载】 Locust 官方文档

    链接:https://www.jianshu.com/p/40102e9a24cb 安装 一般直接通过 pip 就可以安装: $ pip install locust 注意: Locust 1.x 版 ...

  7. H2数据库用户自定义函数方法及范例

    H2数据库,是Java实现的内存数据库.可使用它作为嵌入式内存数据库,但就其特性还用更多值得应用在实际项目中的意义.之前的一篇Blog中已经描述过其使用方法及丰富的连接数据库方式. 官方主页:http ...

  8. 部署kubernetes-dashboard改成http免密登录

    原始链接地址 https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml 修改S ...

  9. LetsTalk_Android中引导用户加入白名单图-2

    =================================================================== ================================ ...

  10. 记一次 .NET某汗液测试机系统 崩溃分析

    一:背景 1. 讲故事 上个月在社区写的文章比较少,一直关注的朋友应该知道那段时间被狗咬了以及一些琐事处理,所以手头上也攒了不少需要分享的案例,这段时间比较空闲,逐个给大 家做个分享吧,刚好年后为新版 ...