sql,行转列
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了sql,行转列,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1117字,纯文字阅读大概需要2分钟。
内容图文
![sql,行转列](/upload/InfoBanner/zyjiaocheng/880/852b96f5d470427d84401e85321fd7f6.jpg)
参考链接:https://blog.csdn.net/rainyspring4540/article/details/50231435
t_vehicle表有如下数据:
sql初始化语句如下:
![sql,行转列 - 文章图片](/upload/getfiles/0001/2021/5/8/20210508101135882.jpg)
![sql,行转列 - 文章图片](/upload/getfiles/0001/2021/5/8/20210508101135969.jpg)
-- ---------------------------- -- Table structure for t_vehicle -- ---------------------------- DROP TABLE IF EXISTS `t_vehicle`; CREATE TABLE `t_vehicle` ( `Vehicle_no` varchar(20) DEFAULT NULL, `Type` varchar(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- ---------------------------- -- Records of t_vehicle -- ---------------------------- INSERT INTO `t_vehicle` VALUES ('粤B11', 'A'); INSERT INTO `t_vehicle` VALUES ('粤B11', 'B'); INSERT INTO `t_vehicle` VALUES ('粤B11', 'B'); INSERT INTO `t_vehicle` VALUES ('粤B22', 'C');View Code
现在要实现一个查询,返回结果如下所示:
这里就涉及到分组查询 ,以及把查询结果的行转换成列的操作,写出来的sql如下:
select t.Vehicle_no, max(CASE t.Type WHEN 'A' THEN t.ct ELSE 0 END ) A_count, max(CASE t.Type WHEN 'B' THEN t.ct ELSE 0 END ) B_count, max(CASE t.Type WHEN 'C' THEN t.ct ELSE 0 END ) C_count from (select Vehicle_no, Type, count(1) ct from t_vehicle group by Vehicle_no, Type)t group by t.Vehicle_no
注意,这里只考虑到了实现功能,而没有考虑sql的查询性能。
内容总结
以上是互联网集市为您收集整理的sql,行转列全部内容,希望文章能够帮你解决sql,行转列所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。