Sql 从另一个表更新列并在单个查询中连接两列

Sql 从另一个表更新列并在单个查询中连接两列,sql,oracle,Sql,Oracle,甲骨文数据库 在SQL中: 如何从另一个表的列更新表的一列,以及如何在单个查询中连接第一个表的两列 如果表_1的列_1与表_2的列_A匹配,则从表_2的列_B的值更新表_1的列_2,并将表_1的列_3和列_4连接到表_1的列_5中 我试过: UPDATE T1 SET column_2 = T2.column_B, column5 = T1.column_3 + T1.column_4 FROM table_1 AS T1 JOIN table_2 AS T2 ON T2.c

甲骨文数据库 在SQL中:

如何从另一个表的列更新表的一列,以及如何在单个查询中连接第一个表的两列

如果表_1的列_1与表_2的列_A匹配,则从表_2的列_B的值更新表_1的列_2,并将表_1的列_3和列_4连接到表_1的列_5中

我试过:

UPDATE T1
  SET column_2 = T2.column_B,
      column5 = T1.column_3 + T1.column_4
FROM table_1 AS T1
JOIN table_2 AS T2
  ON T2.column_A = T1.column_1

我不明白

您正在使用“+”作为字符串连接。Oracle字符串连接运算符为“| |”,请尝试以下代码

UPDATE (SELECT t1.column_2 column2, 
               t1.column_3 column3,
               t1.column_4 column4,
               t1.column_5 column5,
               t2.column_B columnb
          FROM table_1 t1,
               table_2 t2
         WHERE t1.column_1 = t2.column_A)
   SET column2 = columnb,
       column5 = column3 || column4

有什么问题“+”用于什么?是否使用+进行连接?如果希望连接,则应使用适用于所用数据库引擎的方法。Oracle有关于此主题的文档。如果您有t1.col3和t1.col4,为什么还要麻烦将它们连接起来?对于met1.column_2 column 2来说似乎是多余的。为什么要使用column 2?这是什么意思?