首页 > 解决方案 > 非聚合值的 Oracle SQL 转置

问题描述

我有一张桌子...

SELECT * FROM ALLERGIES;

结果是:

Name | Alergy | Alergy Desc | Value John | Gluten | Gluten Products | Yes John | Dairy | Milk, Cheese etc | No Mary | Peanuts | Any kind peanuts | Yes Dave | Gluten | Gluten Products | No Dave | Peanuts | Any kind peanuts | Yes

我希望它看起来像这样......

Name | Dairy | Gluten | Peanuts | ... Dave | NULL | No | Yes | John | No | Yes | NULL | Mary | NULL | NULL | Yes | . . .

换句话说,在最左边的列 (AZ) 上维护一个不同的名称列表,列标题 LR、AZ 的过敏名称。

我没有使用任何聚合函数,所以很遗憾我无法让它与 PIVOT 一起使用。有多个名称和多种过敏,因此IN (x,y,z)即使我可以制造某种形式的骨料,在所有值中手动计算以满足 PIVOT 方法的要求也不适合这里。

有任何想法吗?

旁注: 我在请求中删除了过敏描述以消除一定程度的难度,但理想情况下,每个列标题实例都是“过敏 - 过敏描述”。

编辑: 更新标题以明确声明非聚合值,而不是没有聚合的解决方案。

标签: oraclepivot

解决方案


推荐阅读