给大家出个题,怎样实现下面的SQL语句检索?
假设有以下数据:
公司部门部长姓名
-----------------------------------
AAA01Name1
AAA02Name2
AAA03Name3
BBB01Name4
BBB03Name5
CCC……
已知(公司+部门)为主键,且部门只有01、02、03三种,现需要得到以下报表:
公司部门01的部长姓名部门02的部长姓名部门03的部长姓名
------------------------------------
AAAName1Name2Name3
BBBName4无此部门Name5
CCC…
请试用一个SQL语句完成以上数据的检索。
[解决办法]
如果是ora,把case when 换成decode即可
[解决办法]
select 公司,
max(decode(decode(部门, '01 ',部长姓名),null, '无此部门 ',decode(部门, '01 ',部长姓名))) as 部门01的部长姓名,
max(decode(decode(部门, '02 ',部长姓名),null, '无此部门 ',decode(部门, '02 ',部长姓名))) as 部门02的部长姓名,
max(decode(decode(部门, '03 ',部长姓名),null, '无此部门 ',decode(部门, '03 ',部长姓名))) as 部门03的部长姓名
from 表
group by 公司