SQL 转置查询
admin
2024-02-19 04:59:24
0

1.普通查询:
select  *  from    chengji  
结果:
xm zs ls we
语文 54 78 89
数学 87 67 95

2.转置:
SELECT  'zhangsan'  AS  项目,  [语文],  [数学]
FROM    
(
    SELECT  xm,zs  FROM  chengji
)  AS  c1    
PIVOT    
(    
    sum(zs)  
    FOR  xm  IN  ([语文],  [数学]  )    
)  AS  PivotTable
union
SELECT  'lisi'  AS  项目,  [语文],  [数学]
FROM    
(
    SELECT  xm,ls  FROM  chengji
)  AS  c1    
PIVOT    
(    
    sum(ls)  
    FOR  xm  IN  ([语文],  [数学]  )    
)  AS  PivotTable
union
SELECT  'wanger'  AS  项目,  [语文],  [数学]
FROM    
(
    SELECT  xm,we  FROM  chengji
)  AS  c1    
PIVOT    
(    
    sum(we)  
    FOR  xm  IN  ([语文],  [数学]  )    
)  AS  PivotTable
结果:
项目 语文 数学
lisi 78 67
wanger 89 95
zhangsan 54 87

3.另一种方法:
select  项目,sum(语文)  AS  语文,sum(数学)  AS  数学  from  (
SELECT  'zhangsan'  AS  项目,IIF(xm='语文',zs,0)  AS  语文,IIF(xm='数学',zs,0)  AS  数学
FROM    
(
    SELECT  xm,zs  FROM  chengji
)  AS  a    
union
SELECT  'lisi'  AS  项目,IIF(xm='语文',ls,0)  AS  语文,IIF(xm='数学',ls,0)  AS  数学
FROM    
(
    SELECT  xm,ISNULL(ls,0) as ls FROM  chengji
)  AS  b    
union
SELECT  'wanger'  AS  项目,IIF(xm='语文',we,0)  AS  语文,IIF(xm='数学',we,0)  AS  数学
FROM    
(
    SELECT  xm,we  FROM  chengji
)  AS  c  
union
SELECT  '合计'  AS  项目,IIF(xm='语文',hj,0)  AS  语文,IIF(xm='数学',hj,0)  AS  数学
FROM    
(
    SELECT  xm,sum(zs)+sum(ls)+sum(we)  as  hj  FROM  chengji  group  by  xm
)  AS  d  

)  as  x
group  by  项目

4.mysql  写法:
select  项目,sum(语文)  AS  语文,sum(数学)  AS  数学  from  (
SELECT  'zhangsan'  AS  项目,IF(xm='语文',zs,0)  AS  语文,IF(xm='数学',zs,0)  AS  数学
FROM    
(
    SELECT  xm,ifnull(zs,0) as zs  FROM  mymap.chengji
)  AS  a    
union
SELECT  'lisi'  AS  项目,IF(xm='语文',ls,0)  AS  语文,IF(xm='数学',ls,0)  AS  数学
FROM    
(
    SELECT  xm,ls  FROM  mymap.chengji
)  AS  b    
union
SELECT  'wanger'  AS  项目,IF(xm='语文',we,0)  AS  语文,IF(xm='数学',we,0)  AS  数学
FROM    
(
    SELECT  xm,we  FROM  mymap.chengji
)  AS  c  
union
SELECT  '合计'  AS  项目,IF(xm='语文',hj,0)  AS  语文,IF(xm='数学',hj,0)  AS  数学
FROM    
(
    SELECT  xm,sum(zs)+sum(ls)+sum(we)  as  hj  FROM  mymap.chengji  group  by  xm
)  AS  d  

)  as  x
group  by  项目

相关内容

热门资讯

我来教大家“掼蛋大师辅助器ap... 亲,掼蛋大师这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,掼蛋大师的开挂软件,名...
我来教大家“开心联盟辅助器ap... 您好,开心联盟这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打...
我来教大家“友愉棋牌辅助器ap... 您好,友愉棋牌这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打...
我来教大家“全盛棋牌辅助器ap... 亲,全盛棋牌这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,全盛棋牌的开挂软件,名...
我来教大家“情怀三三麻将辅助器... 我来教大家“情怀三三麻将辅助器app官方下载最新版本更新”详细分享开挂一、情怀三三麻将AI软件牌型概...
我来教大家“无锡好运麻将辅助器... 亲,无锡好运麻将这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,无锡好运麻将的开挂...
我来教大家“推筒子辅助器app... 您好,推筒子这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打牌...
我来教大家“比奇堡辅助器app... 我来教大家“比奇堡辅助器app官方下载最新版本更新”详细分享开挂1、让任何用户在无需AI插件第三方神...
我来教大家“新兴茶苑辅助器ap... 我来教大家“新兴茶苑辅助器app官方下载最新版本更新”详细分享开挂1、让任何用户在无需AI插件第三方...
我来教大家“欢乐互动辅助器ap... 我来教大家“欢乐互动辅助器app官方下载最新版本更新”详细分享开挂1、让任何用户在无需AI插件第三方...
我来教大家“东方互娱辅助器ap... 亲,东方互娱这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,东方互娱的开挂软件,名...
我来教大家“天天乐清麻将辅助器... 我来教大家“天天乐清麻将辅助器app官方下载最新版本更新”详细分享开挂一、天天乐清麻将AI软件牌型概...
我来教大家“唐三彩辅助器app... 我来教大家“唐三彩辅助器app官方下载最新版本更新”详细分享开挂一、唐三彩AI软件牌型概率发牌机制”...
我来教大家“Y0辅助器app官... 我来教大家“Y0辅助器app官方下载最新版本更新”详细分享开挂一、Y0AI软件牌型概率发牌机制”必胜...
我来教大家“天天互娱辅助器ap... 亲,天天互娱这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,天天互娱的开挂软件,名...
我来教大家“悟空竞技麻将辅助器... 亲,悟空竞技麻将这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,悟空竞技麻将的开挂...
我来教大家“情怀开化麻将辅助器... 我来教大家“情怀开化麻将辅助器app官方下载最新版本更新”详细分享开挂一、情怀开化麻将AI软件牌型概...
我来教大家“龙炎互娱辅助器ap... 我来教大家“龙炎互娱辅助器app官方下载最新版本更新”详细分享开挂一、龙炎互娱AI软件牌型概率发牌机...
我来教大家“闲逸碰胡辅助器ap... 亲,闲逸碰胡这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,闲逸碰胡的开挂软件,名...
我来教大家“友聚麻将辅助器ap... 我来教大家“友聚麻将辅助器app官方下载最新版本更新”详细分享开挂一、友聚麻将AI软件牌型概率发牌机...