星空网 > 软件开发 > 数据库

如何理解行转列(SQL)

对于老手来说,行转列已不稀奇。但对于新手来说,对行转列的思维方式还很模糊。

今天我要总结一下我所掌握的行转列的思维方式,以帮助有需要的朋友更清楚的理解行转列的方法。

 

行转列的理解方式:

行转列前,所有列的筛选条件都一样,只是被分组了。

行转列后,每一列各有自己的筛选条件,筛选条件就是行转列前所分组的值。

 

示例:

源数据:

SELECT user_name,dept_no FROM trm_user

 如何理解行转列(SQL)

要求统计每个部门下的人数:

SELECT

dept_no,count(1) AS 'count'

FROM trm_user

GROUP BY dept_no

 如何理解行转列(SQL)

行转列要求部门在第一行,第二行显示人数:

SELECT 'ATD','MACAU','AIAPT'

UNION all

select

convert(VARCHAR,count(CASE WHEN dept_no='ATD' THEN 1 END)),

convert(VARCHAR,count(CASE WHEN dept_no='MACAU' THEN 1 END)),

convert(VARCHAR,count(CASE WHEN dept_no='AIAPT' THEN 1 END))

FROM trm_user

 如何理解行转列(SQL)

 对比:

 如何理解行转列(SQL)

总结:

行转列即是把行转列前的分行条件,分别作为行转列后的各列的筛选条件。

扩展:

易理解的写法:

SELECT 'ATD','MACAU','AIAPT'

UNION all

SELECT

convert(VARCHAR,(SELECT count(1) FROM trm_user WHERE dept_no='ATD')),

convert(VARCHAR,(SELECT count(1) FROM trm_user WHERE dept_no='MACAU')),

convert(VARCHAR,(SELECT count(1) FROM trm_user WHERE dept_no='AIAPT'))

 如何理解行转列(SQL)




原标题:如何理解行转列(SQL)

关键词:sql

sql
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

揭秘丨可以删评、恢复链接的黑科技到底是什么?:https://www.ikjzd.com/articles/135658
【Shopee市场周报】虾皮泰国站2020年12月第1周市场周报:https://www.ikjzd.com/articles/135659
【海途跨境】亚马逊运营Q&A问答(81-90):https://www.ikjzd.com/articles/135660
【Shopee市场周报】虾皮菲律宾站2020年12月第1周市场周报:https://www.ikjzd.com/articles/135662
亚马逊如何打造爆款?:https://www.ikjzd.com/articles/135663
沃尔玛Battle亚马逊!谁将成为跨境电商龙头老大?:https://www.ikjzd.com/articles/135664
TikTok 将推出先买后付服务 :https://www.kjdsnews.com/a/1836651.html
TikTok 将推出先买后付服务 :https://www.goluckyvip.com/news/188219.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流