oracel 列转行
时间: 2023-10-27 11:53:49 浏览: 47
在Oracle中,将列转换为行可以使用PIVOT操作。在Oracle 11g及以后的版本中,可以直接使用PIVOT关键字来实现列转行的操作。例如,使用PIVOT关键字将数据表按照数据来源进行统计求和可以这样写:
```
select to_char(to_date(tjrq,'yyyymmdd'),'yyyy"年"mm"月"dd"日"') tjrq, nvl ( yjjj, 0 ) yjjj, nvl ( qyxf, 0 ) qyxf, nvl ( dgmhs, 0 ) dgmhs
from (
select sjly,tjrq,sum(ztrs) ztrs
from (
SELECT zrq, sjly,tjrq, min( ztrs ) ztrs
FROM A
GROUP BY zrq, sjly ,tjrq
)
group by sjly,tjrq
)
pivot (
max(ztrs) for sjly in ('页面' as yjjj,'接口' as qyxf,'导入' as dgmhs)
)
where tjrq BETWEEN '20220814' and '20220914'
order by tjrq desc
```
这样可以将原本放在一起显示成一行的数据,按照数据来源进行转换,每个数据来源作为一列进行展示。\[2\]\[3\]
#### 引用[.reference_title]
- *1* *2* *3* [Oracle行转列(pivot)和Oracle列转行(unpivot)](https://blog.csdn.net/qq_34958326/article/details/127674187)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]