value        dw            zc
105 第一临床医学院 初级
60 机关          副高职
50 机关          正高职
20 基础医学学院 正高职
变成                        初级   副高职   正高职
第一临床医学院          105
机关                           60         50
基础医学学院                              20
怎么写呀?

解决方案 »

  1.   

    case when if else then 0 end
      

  2.   

    在存諸過程中使用臨表操作吧
    首先得到表中所以zc不同的字段,然後用它來建立表結構,在生成表結構的同時亦生成數據.
    搜索一理以前的貼子有很多此類型的問題與答案.
    如: http://expert.csdn.net/Expert/topic/1202/1202671.xml?temp=2.355593E-02
      

  3.   

    你这个题目是将竖向转换为横向
    思 路.你只要形成的语句为.
    select 类型, 初级,   副高职,   正高职...加...加.union第一临床医学院          105
    。需要你通过程序转换,连接sql字符。 
      

  4.   

    select dw,
      sum(case zc when 初级 then value else 0 end) 初级, 
      sum(case zc when 副高职  then value else 0 end) 副高职,  
      sum(case zc when 正高职 then value else 0 end) 正高职
    from yourtable
    group by dw,初级,副高职,正高职
      

  5.   

    select dw,
      (case zc when 初级 then value else 0 end) 初级, 
      (case zc when 副高职  then value else 0 end) 副高职,  
      (case zc when 正高职 then value else 0 end) 正高职
    from table
    group by dw