代码之家  ›  专栏  ›  技术社区  ›  ss sd

用于将列复制到不同表的另一列的脚本

  •  0
  • ss sd  · 技术社区  · 7 年前

    SQL命令未正确结束-运行以下代码时显示错误。我想将表T\u DOC的Process列中的所有值复制到T\u CHARACTERISTICS的Process列。现在在中处理列 T_CHARACTERISTICS NULL . (除此列外,其他所有列 T_特性 是有价值的)提前谢谢

    UPDATE T_CHARACTERISTICS 
    SET T_CHARACTERISTICS.PROCESS = T_DOC.PROCESS
    FROM T_CHARACTERISTICS  
    JOIN  T_DOC ON T_CHARACTERISTICS.ID = T_DOC.ID
    
    2 回复  |  直到 7 年前
        1
  •  0
  •   Gordon Linoff    7 年前

    这不是正确的Oracle语法。这里有一种方法:

    UPDATE T_CHARACTERISTICS c
        SET PROCESS = (SELECT d.PROCESS
                       FROM T_DOC d
                       WHERE c.ID = d.ID
                      )
        WHERE EXISTS (SELECT 1
                      FROM T_DOC d
                      WHERE c.ID = d.ID
                     );
    
        2
  •  0
  •   Tim Biegeleisen    7 年前

    Oracle不支持更新联接,但我们可以使用相关子查询:

    UPDATE T_CHARACTERISTICS t1
    SET PROCESS = (SELECT t2.PROCESS FROM T_DOC t2 WHERE t2.ID = t1.ID);