我在Oracle中有下表,我需要根据RecType将其转换为多个列。
我在桌面上写了一个自连接,但RecType有5种类型,而且查询太大了,有没有更简单的方法可以做到这一点?
表我选择的是:
期望的输出:
答案 0 :(得分:0)
根据需要添加更多recTypes ..这不是动态的,您需要对recTypes等进行硬编码..但是有效
SELECT recNo, value1, value2, value3
FROM (
SELECT t.recNo, t.rectype, max(t.value) value
FROM mytable t
GROUP BY t.recType, t.RECNO
)
PIVOT (
max(value) FOR recType IN (103 value1, 191 value2, 108 value3)
)
答案 1 :(得分:0)
尝试使用此透视查询:
SELECT RecNo, Value, RecType FROM tablename
PIVOT
(
MAX(Value)
FOR RecType
IN (103 AS Value1, 191 AS Value2, 108 AS Value3)
)
要添加其他两个值,只需使用与Value1 / 2/3相同的模式添加它们。这确实假设您每个RecType和RecNo始终只有一个唯一Value
,否则您最终会丢失信息。