我有一个包含更新和插入值的表。因此,大多数 ID 有 2 行,一个用于插入,另一个用于更新(有一个“运算符”列,其值为 UPDATED 或值 INSERTED)。样本数据:
operator | ID | row2 | row3
===========================
updated | 01 | | 231
===========================
inserted | 01 | abc | 123
===========================
updated | 02 | khj | 567
===========================
inserted | 02 | klo | 567
===========================
inserted | 03 | nmb | 900
我的任务是将这 2 行合并为 1,按它们的 ID 对它们进行分组。但是,所有值都必须来自“更新”行,并且如果“更新”中有一些 NULL 值,它们必须来自“插入”行。
期望的结果:
ID | row2 | row3
==================
01 | abc | 231
==================
02 | khj | 567
==================
03 | nmb | 900
==================
目标是让所有不同的 ID 具有最新的数据。
有谁知道如何做到这一点?
我尝试实现以下逻辑,但它没有返回最新数据:
SELECT
ID,
MAX(Field1) AS Field1,
MAX(Field2) AS Field2
FROM
table_name
GROUP BY
ID;