oracle横表转竖表
时间: 2023-07-07 10:44:40 浏览: 58
要将横表转换为竖表,您可以使用Oracle的UNPIVOT操作符。下面是一个简单的例子,假设您有一个名为“sales”的表,其中包含了每个月的销售额信息,如下所示:
| year | month | product_a | product_b | product_c |
|------|-------|-----------|-----------|-----------|
| 2020 | Jan | 10000 | 15000 | 8000 |
| 2020 | Feb | 12000 | 18000 | 9000 |
| 2020 | Mar | 13000 | 19000 | 10000 |
要将此表转换为竖表,以显示每个月份和产品的销售额,请使用以下查询:
```
SELECT year, month, product, sales
FROM sales
UNPIVOT (
sales FOR product IN (product_a, product_b, product_c)
)
ORDER BY year, month, product;
```
这将返回以下结果:
| YEAR | MONTH | PRODUCT | SALES |
|------|-------|---------|-------|
| 2020 | Jan | PRODUCT_A | 10000 |
| 2020 | Jan | PRODUCT_B | 15000 |
| 2020 | Jan | PRODUCT_C | 8000 |
| 2020 | Feb | PRODUCT_A | 12000 |
| 2020 | Feb | PRODUCT_B | 18000 |
| 2020 | Feb | PRODUCT_C | 9000 |
| 2020 | Mar | PRODUCT_A | 13000 |
| 2020 | Mar | PRODUCT_B | 19000 |
| 2020 | Mar | PRODUCT_C | 10000 |
在此查询中,UNPIVOT操作符将“product_a”,“product_b”和“product_c”列转换为“product”列,并将其值放入“sales”列。最后,我们使用ORDER BY子句按年份、月份和产品名称对结果进行排序。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)