Oracle 将一个表中几个字段更新到另一个表中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle 将一个表中几个字段更新到另一个表中相关的知识,希望对你有一定的参考价值。

例如:test_table1中字段1aa,字段2bb,字段cc。
更新到test_table2中,test_table2中字段DD,EE,GG,FF...,
我是这么写的”
UPDATE TEST_TABLE1 T1
SET (T1.AA, T1.BB, T1.CC) =
(SELECT DD, EE, FF
FROM TEST_TABLE2 T2
WHERE 1=1)

如果下面的子查询返回多条数据,是会报错的。

SELECT DD, EE, FF
         FROM TEST_TABLE2 T2
        WHERE 1=1


第 1 行出现错误:

ORA-01427: 单行子查询返回多个行


如果test_table2 表中只有一条数据,那么是没有问题的。



我觉得你这两个表一定是要有关联关系的,不然这个update语句没什么意义。

比如test_table1 表中有一个id字段,一对一关联着test_table2 表中的id字段,那么可以这样写:


UPDATE TEST_TABLE1 T1
  SET (T1.AA, T1.BB, T1.CC) =
      (SELECT DD, EE, FF
         FROM TEST_TABLE2 T2
        WHERE t1.id=t2.id)追问

对的,肯定是有关联,而且还在就报你说的错误了,最后我用了exists才弄好了,,,

参考技术A 你如果要是插入记录的话可以这么写
insert INTO TEST_TABLE1(AA,BB,CC)as
(SELECT DD, EE, FF FROM TEST_TABLE2 T2)
参考技术B 如果test_table1和test_table2是关联的才能叫更新,采用renfengjun1986的方法即可,
如果两个表是没有关联的那就应该叫插入数据,采用nietiezheng 的方法。本回答被提问者采纳

excel中,将一个工作表中几列数据自动更新到另一个工作表中对应的列中?

就是第一个原表格,分别有这几列:人名,学号,饭卡号,银行卡号,性别,身高,外貌特征,性格,导师。第二表格我有人名,学号,导师,银行卡号这几列。那如何做到,每次原表格更新,第二表格中所需要的数据也会更新呢?

若有用追加100💰

希望能帮到您:)根据您的描述,有两种情况

【第一种情况】两个表格都在一个excel工作簿中,可以通过复制来解决

步骤1:选中表1中需要放到表2的那几列,也牛市 “人名”,“学号”,“导师”,“银行卡号”,ctrl+C进行复制

步骤2:在表2中,选中某一单元格,右键——>选择性黏贴

打开“选择性黏贴”的对话框,在左下角选择“黏贴链接”

表1中需要的几列会以链接的方式显示在表2中,当更新表1中的某个单元格时,表2中的值会自动更新。    

【第二种情况】两个表格分别在两个不同的excel工作簿中,可以通过加载外部数据来解决

步骤1:在表2中,在“数据”选项卡中,依次选择“获取外部数据”——>“来自其他来源”——>"来自XML数据导入"

步骤2:在打开的对话框中,将文件类型选为“所有文件(*.*)”,然后选择表1的excel工作簿。根据引导提示,将表1的内容导入到表2中,删掉不需要的列,调整保留列的顺序

步骤3:当表1进行更新时,表2中在“数据”选项卡中,选择“全部刷新”,即可同步更新。

追问

首先十分感谢您的回答。那我想更新的时候,第二个表会自动有条件的删除无用数据呢?

追答

您说的第二个表户自动有条件的删除无用数据,这个能否再描述的详细一些?或者举个具体的例子我理解下?:)

参考技术A 你要上传带行列号的截图的表格,
一般用VLOOKUP,INDEX等查找函数

以上是关于Oracle 将一个表中几个字段更新到另一个表中的主要内容,如果未能解决你的问题,请参考以下文章

excel中,将一个工作表中几列数据自动更新到另一个工作表中对应的列中?

将一个表的查询结果插入到另一个表中(oracle、mysql、sql 、GP)

将一个表的字段更新到另一个表中去

更新SQL某个表中的时间字段中的一部分数据整体增加小时数

sql将一个表中的所有数据更新到另一个表中

oracle中怎么如何把两张表中查询到的数据求和,