Sql 试图解压
我正在尝试取消Pivot我以前创建和透视的表,并获取错误信息: ORA-00904::标识符00904无效。00000-“%s:无效标识符”*原因: *操作:第107行第1列出错 这是否与我试图透视的列与行的数据类型不同有关Sql 试图解压,sql,oracle11g,Sql,Oracle11g,我正在尝试取消Pivot我以前创建和透视的表,并获取错误信息: ORA-00904::标识符00904无效。00000-“%s:无效标识符”*原因: *操作:第107行第1列出错 这是否与我试图透视的列与行的数据类型不同有关 select sales_per_month, Product_id, Total_amount from pivoted_sales unpivot((Total_amount) for (Product_id) in( 100 as '100', <-
select
sales_per_month,
Product_id,
Total_amount
from pivoted_sales
unpivot((Total_amount) for (Product_id) in(
100 as '100', <- 107
101 as '101',
105 as '105',
106 as '106',
200 as '200'))
选择
每月销售额,
产品标识,
总金额
从数据透视销售
在(
100作为'100',我认为您需要在unpivot
列名称中使用“
而不是”
select
sales_per_month,
Product_id,
Total_amount
from pivoted_sales
unpivot(Total_amount for Product_id in(
"100",
"101",
"105",
"106",
"200"))
您希望“100”作为100
而不是100作为“100”
:
Oracle 11g R2架构设置:
CREATE TABLE PIVOTED_SALES (
sales_per_month NUMBER,
"100" NUMBER,
"101" NUMBER,
"105" NUMBER,
"106" NUMBER,
"200" NUMBER
);
INSERT INTO pivoted_sales VALUES( 1, 0, 20, 30, 0, 50 );
select sales_per_month,
Product_id,
Total_amount
from pivoted_sales
unpivot(
Total_amount for Product_id in(
"100" as 100,
"101" as 101,
"105" as 105,
"106" as 106,
"200" as 200
)
)
| SALES_PER_MONTH | PRODUCT_ID | TOTAL_AMOUNT |
|-----------------|------------|--------------|
| 1 | 100 | 0 |
| 1 | 101 | 20 |
| 1 | 105 | 30 |
| 1 | 106 | 0 |
| 1 | 200 | 50 |
查询1:
CREATE TABLE PIVOTED_SALES (
sales_per_month NUMBER,
"100" NUMBER,
"101" NUMBER,
"105" NUMBER,
"106" NUMBER,
"200" NUMBER
);
INSERT INTO pivoted_sales VALUES( 1, 0, 20, 30, 0, 50 );
select sales_per_month,
Product_id,
Total_amount
from pivoted_sales
unpivot(
Total_amount for Product_id in(
"100" as 100,
"101" as 101,
"105" as 105,
"106" as 106,
"200" as 200
)
)
| SALES_PER_MONTH | PRODUCT_ID | TOTAL_AMOUNT |
|-----------------|------------|--------------|
| 1 | 100 | 0 |
| 1 | 101 | 20 |
| 1 | 105 | 30 |
| 1 | 106 | 0 |
| 1 | 200 | 50 |
:
CREATE TABLE PIVOTED_SALES (
sales_per_month NUMBER,
"100" NUMBER,
"101" NUMBER,
"105" NUMBER,
"106" NUMBER,
"200" NUMBER
);
INSERT INTO pivoted_sales VALUES( 1, 0, 20, 30, 0, 50 );
select sales_per_month,
Product_id,
Total_amount
from pivoted_sales
unpivot(
Total_amount for Product_id in(
"100" as 100,
"101" as 101,
"105" as 105,
"106" as 106,
"200" as 200
)
)
| SALES_PER_MONTH | PRODUCT_ID | TOTAL_AMOUNT |
|-----------------|------------|--------------|
| 1 | 100 | 0 |
| 1 | 101 | 20 |
| 1 | 105 | 30 |
| 1 | 106 | 0 |
| 1 | 200 | 50 |