如何使用Oracle将两行转换为一行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Oracle将两行转换为一行相关的知识,希望对你有一定的参考价值。
我有一个名为COMPANY_DETAILS的表,共有5列
ID NAME REVENUE_YEAR TOTAL_REVENUE TOTAL_ASSET 100 ABC CORP 2015 50000 30000 100 ABC CORP 2016 60000 40000 200 XYZ CORP 2015 85000 60000 200 XYZ CORP 2016 75000 55000
如何通过SQL Query获取下表模式?
ID NAME REVENUE_YEAR15 TOTAL_REVENUE15 TOTAL_ASSET15 REVENUE_YEAR16 TOTAL_REVENUE16 TOTAL_ASSET16 100 ABC CORP 2015 50000 30000 2016 60000 40000 200 XYZ CORP 2015 85000 60000 2016 75000 55000
请帮助我。我正在使用Oracle 11g。
答案
试试这个。
select ID, NAME, 2015 REVENUE_YEAR15 ,
SUM ( CASE WHEN REVENUE_YEAR = 2015 THEN TOTAL_REVENUE
ELSE 0 END) TOTAL_REVENUE15,
SUM ( CASE WHEN REVENUE_YEAR = 2015 THEN TOTAL_ASSET
ELSE 0 END) TOTAL_REVENUE15,
2016 REVENUE_YEAR16 ,
SUM ( CASE WHEN REVENUE_YEAR = 2016 THEN TOTAL_REVENUE
ELSE 0 END) TOTAL_REVENUE16,
SUM ( CASE WHEN REVENUE_YEAR = 2016 THEN TOTAL_ASSET
ELSE 0 END) TOTAL_REVENUE16
FROM COMPANY_DETAILS GROUP BY ID,NAME;
以上是关于如何使用Oracle将两行转换为一行的主要内容,如果未能解决你的问题,请参考以下文章