原表TA如下班级ID  科目     教师1       语文     郭靖
1       数学     黄蓉
1       英语     张三丰
1       体育     张无忌
2       语文     小龙女
2       数学     黄药师
2       英语     欧阳锋
2       体育     洪七公要的结果班级ID  语文    数学   英语    体育1       郭靖    黄蓉   张三丰  张无忌
2       小龙女  黄药师 欧阳锋  洪七公         

解决方案 »

  1.   

    课程是固定的这几个吗select t1.班级ID,t1.教师 语文,t2.教师 数学,t3.教师 英语,t4.教师 体育 
    from (select 班级ID, 教师 from ta where 科目 = '语文' ) t1,
         (select 班级ID, 教师 from ta where 科目 = '数学' ) t2,
         (select 班级ID, 教师 from ta where 科目 = '英语' ) t3,
         (select 班级ID, 教师 from ta where 科目 = '体育' ) t4 
    where t1.班级ID = t2.班级ID 
    and   t1.班级ID = t3.班级ID 
    and   t1.班级ID = t4.班级ID;
      

  2.   

    很古老的问题了...
    select 班级ID,
           max(decode(科目,语文,教师)) 语文,
           max(decode(科目,数学,教师)) 数学,
           max(decode(科目,英语,教师)) 英语,
           max(decode(科目,体育,教师)) 体育
    from ta
    group by 班级ID