如何仅从具有相同表结构的两个表中获取更新的列值

曼格什·戈萨维

有两个结构相同的表,第一个表是主数据,另一个表是最近更新的数据。为了。例如

表A——

col1 col2 col3
abc  xyz  yyz

表B--

col1 col2 col3
abc  pqr  yyz

当我更新 tableB 中 col2 的值时,现在我想要查询将给出表 A 中的旧值和表 B 中的新值。即

oldValue  NewValuwe
xyz       pqr
拉杰夫潘迪

使用您发布的示例数据,我假设两个表中的 col1 都不会更新,因此可用于链接两个表

Select
   a.col1,
   CASE
      WHEN NVL(a.col2, '') <> NVL(b.col2, '') THEN a.col2 
      WHEN NVL(a.col3, '') <> NVL(b.col3, '') THEN a.col3 
      -- and so on
      ELSE 'None' 
   END
   AS oldValue, 
   CASE
      WHEN NVL(a.col2, '') <> NVL(b.col2, '') THEN b.col2 
      WHEN NVL(a.col3, '') <> NVL(b.col3, '') THEN b.col3 
      -- and so on
      ELSE 'None' 
   END
   AS NewValue 
from
   tableA a, tableB b 
where
   a.col1 = b.col1 
   and 
   (
      NVL(a.col2, '') <> NVL(b.col2, '') 
      OR NVL(a.col3, '') <> NVL(b.col3, '') -- assuming you want to track changes of col3 as well
   )
   

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

联合两个表后如何在两个表中按具有相同列名的列排序?

SQL更新两个具有相同随机值的表

更新表在不同的行中具有两个具有相同值的不同列

如何链接两个表,但仅从PostgreSQL中的一个表获取MAX值?

如何从两个不同的表中获取具有相同销售ID的总和值相等的值的数据?

数据库:如何从具有一个公共列的两个表中获取多个值

在不同模式中同步具有相同结构的两个Oracle表

如何合并具有相同属性的两个不同表的值

如何在SQL的两个表中获取具有不常见值的行?

如何在联接查询中的两个表中更新具有相同名称的两列

如何插入两个表;一个表将插入1行,另一表将插入多行,两个表的一列具有相同的值

查询以比较具有相同结构的两个表?

获取联接具有相同列ID的房间中的两个表的数据

SQL合并两个表,其中两个列具有相同的值

如何删除只有两列相同的两个不同表的重复值?

如何联接具有相同主键名称但值不同的两个表

如何合并Excel中具有相同列的两个表?

如何在Lua中检查两个表(对象)是否具有相同的值

如何合并具有相同结构的两个mysql表

如果其他任何列字段发生更改,如何从具有相同主键的两个表中取回记录

根据两个表的相同值更新列值

如何使两个查询中的两个结果(具有相同的列)显示在单个查询表中

如何在另一个表ssms中更新具有相同值的列?

从具有相同列的两个表中选择

如何从两个具有相同列的现有表创建新的配置单元表

SQL | 如何比较具有相同结构的两个表

如何在 T-SQL 的一个脚本中创建两个具有相同列定义的表?

如何在Ecto的连接查询中更新两个表中具有相同名称的列

如何对具有相同列的两个表求和?