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  项目

相关内容

热门资讯

安卓系统源码怎么打开,并可能需... 你有没有想过,安卓系统的源码就像是一扇神秘的门,隐藏着无数的技术秘密?想要打开这扇门,你得掌握一些小...
安卓8.0系统体验视频,智能革... 你有没有听说安卓8.0系统最近可是火得一塌糊涂啊!作为一个紧跟科技潮流的数码达人,我当然要来给你好好...
宣传系统漫画app安卓,探索安... 亲爱的读者们,你是否曾在某个午后,百无聊赖地打开手机,想要寻找一些轻松愉悦的读物?今天,我要给你介绍...
鸿蒙替换安卓系统吗,开启智能生... 你知道吗?最近科技圈里可是炸开了锅,因为华为的新操作系统鸿蒙系统,据说要大举进军手机市场,替换掉安卓...
手机安卓系统深度清理,解锁手机... 手机里的东西是不是越来越多,感觉就像一个装满了杂物的储物柜?别急,今天就来教你一招——手机安卓系统深...
安卓上的windows系统,融... 你有没有想过,在安卓手机上也能体验到Windows系统的魅力呢?没错,这就是今天我要跟你分享的神奇故...
安卓系统焦点变化事件,Andr... 你知道吗?在安卓系统的世界里,最近发生了一件超级有趣的事情——焦点变化事件。这可不是什么小打小闹,它...
一加系统安卓降级,轻松还原经典... 你有没有想过,你的手机系统升级后,突然发现某些功能变得不那么顺心了?别急,今天就来聊聊一加系统安卓降...
日本最好的安卓系统,体验非凡 亲爱的读者们,你是否曾想过,在遥远的东方,有一个国家,他们的智能手机系统独具特色,让人眼前一亮?没错...
荣耀安卓11 系统证书,保障安... 你知道吗?最近手机圈里可是炸开了锅,荣耀安卓11系统证书成了大家热议的话题。这不,我就迫不及待地来和...
安卓手机开机升级系统,体验流畅... 你有没有发现,每次你的安卓手机开机,总会有那么一刹那,屏幕上跳出一个升级系统的提示?是不是觉得这就像...
真正的安卓系统手机,安卓系统手... 你有没有想过,为什么有些人对安卓系统手机情有独钟?是不是觉得市面上的安卓手机千篇一律,缺乏个性?别急...
安卓怎么用定位系统,轻松实现精... 你有没有想过,手机里的定位系统竟然这么神奇?它不仅能帮你找到回家的路,还能在茫茫人海中找到你的好友。...
安卓的哪个系统流畅,探索新一代... 你有没有想过,为什么你的安卓手机有时候像蜗牛一样慢吞吞的,而别人的手机却像风一样快?今天,就让我带你...
安卓系统解锁工具下载,畅享自由 你是不是也和我一样,对安卓系统的解锁工具感兴趣呢?想象你的手机被锁住了,无论是忘记密码还是想尝试新的...
谷歌退出安卓系统停用,停用背后... 你知道吗?最近有个大新闻在科技圈里炸开了锅!谷歌竟然宣布要退出安卓系统,这可真是让人大跌眼镜啊!想象...
安卓系统卡顿修复,轻松提升手机... 手机用久了是不是感觉有点卡卡的呢?别急,今天就来给你支几招,让你的安卓手机重焕生机,告别卡顿的烦恼!...
安卓系统停用怎么解除,轻松恢复... 你是不是也遇到了安卓系统停用的问题,急得像热锅上的蚂蚁?别急,今天就来给你详细解析怎么解除这个让人头...
最初始的安卓系统,技术演进与产... 亲爱的读者,你是否曾好奇过,那个如今无处不在的安卓系统,它的诞生之初是怎样的呢?今天,就让我们一起穿...
patchwall系统和安卓系... 你有没有发现,手机上的界面越来越个性化了?没错,这就是科技的魅力所在。今天,咱们就来聊聊两个在个性化...