Oracle 10g 中的 PIVOT 函数
PIVOT function in Oracle 10g
我有一个 table 包含以下数据
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
我希望将其转换成如下所示的 table
SKU BRAND CSBC DWPS DWS DWSG EA
0890 OMH 0763440890 0763440890 0763440890 * 1
我们的Oracle数据库版本是10G,所以PIVOT还没有用。
请帮忙。
Oracle 10 没有数据透视表,因此您可以使用条件聚合:
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;
我有一个 table 包含以下数据
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
我希望将其转换成如下所示的 table
SKU BRAND CSBC DWPS DWS DWSG EA
0890 OMH 0763440890 0763440890 0763440890 * 1
我们的Oracle数据库版本是10G,所以PIVOT还没有用。
请帮忙。
Oracle 10 没有数据透视表,因此您可以使用条件聚合:
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;