行转列 demo

--建立测试环境  
  Create   Table   表(区域   varchar(100),类型   varchar(100),价格   varchar(100))  
  --插入数据  
  insert   into   表  
  select   '1长春','1.标准全球通','234'   union  
  select   '1长春','2.全球通资费套餐','5423'   union  
  select   '1长春','3.全球通优惠','454'   union  
  select   '2吉林','1.标准全球通','297'   union  
  select   '2吉林','2.全球通资费套餐','12'   union  
  select   '2吉林','3.全球通优惠','29949'  
   
  --测试语句  
    DECLARE   @SQL   VARCHAR(8000)  
  SET   @SQL='SELECT   区域'  
  SELECT   @SQL=   @SQL+    
  ',min(CASE   WHEN   类型   =   '''   +   类型   +   '''   THEN   价格     END)   ['   +   类型   +   ']'  
  FROM   (SELECT   DISTINCT   类型   FROM   表)   A  
  SET   @SQL=@SQL+'   FROM   表   GROUP   BY   区域'  
  exec   (@SQL)  
     
     
  --删除测试环境  
  Drop   Table   表

原文地址:https://www.cnblogs.com/xianzuoqiaoqi/p/1536391.html