Sql oracle10g中的PIVOT函数
我有一个包含以下数据的表Sql oracle10g中的PIVOT函数,sql,oracle,oracle10g,Sql,Oracle,Oracle10g,我有一个包含以下数据的表 SKU Site Code Value 0890 50 BRAND OMH 0890 50 CSBC 0763440890 0890 50 DWPS 0763440890 0890 50 DWS 0763440890 0890 50 DWSG * 0890 50 EA 1 我希望将其转换为如下所示的表 SKU BRAND CSBC
SKU Site Code Value
0890 50 BRAND OMH
0890 50 CSBC 0763440890
0890 50 DWPS 0763440890
0890 50 DWS 0763440890
0890 50 DWSG *
0890 50 EA 1
我希望将其转换为如下所示的表
SKU BRAND CSBC DWPS DWS DWSG EA
0890 OMH 0763440890 0763440890 0763440890 * 1
我们拥有的Oracle db版本是10G,因此PIVOT还没有用处
请提供帮助。Oracle 10没有pivot,因此您可以使用条件聚合:
select sku,
max(case when code = 'BRAND' then value end) as brand,
max(case when code = 'CSBC' then value end) as CSBC,
max(case when code = 'DWPS' then value end) as DWPS,
max(case when code = 'DWS' then value end) as DWS,
max(case when code = 'DWSG' then value end) as DWSG,
max(case when code = 'EA' then value end) as ea
from t
group by sku;
是否预先知道整套可能的代码标识符?如果不是,您将需要动态SQL(即使使用
pivot
操作符,即使在Oracle 12.2当前版本中也是如此)。嘿,我已经两年没有得到这个答案了,它确实帮了我很大的忙。谢谢