我有一个表,它根据两个标识值(产品代码和一个详细代码)存储值,使每一行都是唯一的,第三个值存储基于详细代码的值类型。我想做的是在新列中显示任何一个产品代码的所有第三个值。详细代码将充当列标题。
到目前为止我已经尝试过:
SELECT id1,
CASE WHEN id2 ='A'
THEN value
ELSE 0
END A,
CASE WHEN id2 ='B'
THEN value
ELSE 0
END B
FROM table1
WHERE id2 = 'A' OR id2 = 'B'
GROUP BY id1
这工作正常,除了当表中存在 id2 = 'A' 的值时,id2 = 'B' 的 CASE WHEN 默认为 0 而不是正确的值,如果有的话。如果 id2 = 'A' 没有记录,则 CASE WHEN 将在 id2 = 'B' 的情况下正常工作。
我假设还有一种更好的方法来解决这个问题,但是在任何地方都很难找到这种确切的情况。我绝对可以使用没有多列的数据,但希望不要/学到一些东西