oracle行转列sql
时间: 2023-07-03 15:22:19 浏览: 96
Oracle行转列可以使用`PIVOT`函数来实现。例如,我们有一个表`sales`,包含以下数据:
```
SALESPERSON PRODUCT AMOUNT_SOLD
-----------------------------------
John Phone 1000
John Laptop 2000
Mary Phone 1500
Mary Laptop 2500
```
现在我们想要将`SALESPERSON`列转换为行,并按`PRODUCT`列进行汇总,可以使用以下SQL语句:
```sql
SELECT *
FROM (SELECT salesperson, product, amount_sold
FROM sales)
PIVOT (SUM(amount_sold)
FOR salesperson IN ('John', 'Mary'))
ORDER BY product;
```
执行以上SQL语句后,可以得到以下结果:
```
PRODUCT 'John' 'Mary'
-------------------------
Laptop 2000 2500
Phone 1000 1500
```
其中,`PIVOT`函数用于将`SALESPERSON`列转换成行,并按`PRODUCT`列进行汇总;`SUM(amount_sold)`用于计算每个`PRODUCT`和`SALESPERSON`组合的销售总额。
阅读全文