。。
select a,max(case when c='xx' then  b else  null) xx
……
from  table  group  by a

解决方案 »

  1.   

    請參見:
    分店名?          ?位              姓名  
         A店                店?              ?三  
         A店              工程?            李四        
         B店                店?              王五  
         A店              工程?              ?六  
         A店                技工                啊光  
         B店                工程?            王明  
         A店                技工                小?  
         A店              工程?              李?  
     
      轉換為
     
     分店名?          ?位              人?        人?名?  
       A店                  店?                1              ?三  
       A店                工程?              2              李四    ?六  李?  
       A店                  技工                2              啊光    小?  
       B店                  店?                1              王五  
       B店                  工程?              1            王明  
     
    */
    ---------------------------------------------------------------  
     
    create  function  getstr(@分店名?  varchar(20),@?位  varchar(20))  
    returns  varchar(2000)  
    as    
    begin  
    declare  @str  varchar(2000)  
    set  @str=''  
    select  @str=@str+'  '+rtrim(人?名?)  from  表    
    where  分店名?=@分店名?  and  ?位=@?位  
    set  @str=right(@str,len(@str)-1)  
    return  @str  
    end  
    go  
     
    ?句:  
    select  分店名?,?位,count(*)  人?,dbo.getstr(分店名?,?位)  人?名?  from  表  group  by  分店名?,?位
      

  2.   

    select 姓名,sum(语文) as 语文,sum(数学) as 数学,sum(英语) as 英语 from 
    (select 姓名,语文=(case when 课程名称=语文 then 成绩 else 0 end),
    数学=(case when 课程名称=数学 then 成绩 else 0 end),
    英语=(case when 课程名称=英语 then 成绩 else 0 end)) a
      group by 姓名
      

  3.   

    下面的三个问题可以到.net技术中去问问