| hashdiff | 整行指纹,快 |
|---|---|
| 逐列比较 | 明细定位,慢 |
| 组合 | 先过滤再定位 |
逐列差异定位
逐列差异定位
SELECT customer_id,
CASE WHEN d.name <> s.name THEN 'name'
WHEN d.phone <> s.phone THEN 'phone' END AS changed_col
FROM dim_customer d
JOIN stg_customer s ON d.customer_id = s.customer_id AND d.is_current = 1
WHERE NOT (d.name <=> s.name) OR NOT (d.phone <=> s.phone);拼接时用 coalesce 把空值替换为固定标记,保证两端算法与字段顺序完全一致。