有一个折叠的表,其中有两列:Column_A和Column_B。 基于此表,应创建另一个表,其中Column_A保持不变,但B列会更改。
Column_A | Column_B Column_A | New_Column_B
-------------------- --------------------------
1 | 3 1 | 9
2 | 8 2 | 19
3 | 9 ==> 3 | 9
5 | 12 5 | 12
8 | 17 8 | 19
17 | 19 17 | 19
对于每一行,我们检查Column_B,它是否存在于Column_A中?
是?看一下Column_B,它出现在Column_A中吗?
是的,.. Column_B中的值被添加到新列中,以实现Column_B和Column_A之间的最后匹配。
column_A中没有重复项,总共有大约一百万行。 用SQL for Netezza编写此代码的最有效方法是什么?
我尝试了以下查询,它适用于B与A匹配的单个情况。 但不适用于Netezza。
SELECT Column_A,
coalesce(
(
SELECT Column_B
FROM Collapsed c2
WHERE c1.Column_B=c2.Column_A
),Column_B
) as B
FROM Collapsed c1;