求指点一个SQ语句,非常感谢!

图片说明

oracle 怎么用SQL语句实现上面的表展示,求各位朋友指点。注意:甲乙丙这个班在数据库不是固定的,有空能是别的名称。

select* from table_test
pivot(max(banci) for banzu in('甲' 甲,'乙' 乙,'丙' 丙))

in 里面传进来你要的班组

这是最简单的行列转换了,老兄。

select workdate 日期,case when banzu = '甲' then banci end 甲,case when banzu = '乙' then banci end 乙,case when banzu = '丙' then banci end 丙 from table_name group by  workdate;
select a.workdate as 日期 ,a.banci as 甲,b.banci as 乙,c.banci as 丙 from(select workdate ,banci from question2 where banzu='甲') as a INNER JOIN
(select workdate ,banci from question2 where banzu='乙') b on a.workdate=b.workdate INNER JOIN
(select workdate ,banci from question2 where banzu='丙') as c on a.workdate=c.workdate 

上面是mysql的,而且是拼接出来的数据
下面用的oracle的,参考一楼的答案修改的

select workdate 日期,Max(case when banzu = '甲' then banci end) 甲,Max(case when banzu = '乙' then banci end )乙,Max(case when banzu = '丙' then banci end )丙 from question2 group by  workdate;

我都是用mysql数据库测试的,如果答案没错的话希望采纳一楼