我需要一些帮助来修复数据异常。我基于两个具有左连接的表创建了一个视图,结果有一些重复(如逻辑部分中给出的)
数据设置:
*******************
TEST1
*******************
PRODUCT VALUE1 KEY
1 2 12
1 3 13
1 4 14
1 5 15
*******************
TEST2
*******************
KEY ATTRIBUTE
12 DESC
13 (null)
14 DESC
15 (null)
到目前为止我尝试了什么
SELECT
B.KEY,
B.ATTRIBUTE,
A.PRODUCT
A.VALUE1
FROM TEST2 B LEFT JOIN TEST1 A ON TEST2.KEY = TEST1.KEY;
我用上面的 SQL 得到的是
KEY ATTRIBUTE PRODUCT VALUE1
12 DESC 1 2
13 (null) 1 3
14 DESC 1 4
15 (null) 1 5
我需要得到什么
KEY ATTRIBUTE PRODUCT VALUE1
12 DESC 1 2
13 DESC 1 3
14 DESC 1 4
15 DESC 1 5
逻辑:由于所有 id 为 1 的产品都是相同的,如果它是 NULL,我需要保留属性。因此,对 PRODUCT 和 ATTRIBUTE 进行区分将始终每个产品 id 有 1 行。Test1有100多个产品,Test2有相应的描述。
注意:这不是规范化设计,因为它是数据仓库。所以请不要抱怨设计
我想在属性字段中有一个 CASE 语句。
CASE
WHEN ATTRIBUTE IS NULL THEN {fix goes here}
ELSE ATTRIBUTE
END AS ATTRIBUTE
有人需要看小提琴,然后去这里