MySQL日常问题-行列互换

问题 行列互换

场景1 行转换列

1、表结构和数据

/*Navicat Premium Data TransferSource Server         : 本地Source Server Type    : MySQLSource Server Version : 80027Source Host           : localhost:3306Source Schema         : schoolTarget Server Type    : MySQLTarget Server Version : 80027File Encoding         : 65001Date: 13/06/2024 14:50:51
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for score
-- ----------------------------
DROP TABLE IF EXISTS `score`;
CREATE TABLE `score`  (`stu_no` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '学号',`course_no` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '课程号',`score_prize` decimal(4, 1) NULL DEFAULT NULL COMMENT '成绩',PRIMARY KEY (`stu_no`, `course_no`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of score
-- ----------------------------
INSERT INTO `score` VALUES ('0001', '0001', 40.0);
INSERT INTO `score` VALUES ('0001', '0002', 50.0);
INSERT INTO `score` VALUES ('0001', '0003', 48.0);
INSERT INTO `score` VALUES ('0002', '0001', 40.0);
INSERT INTO `score` VALUES ('0002', '0002', 30.0);
INSERT INTO `score` VALUES ('0002', '0003', 99.0);
INSERT INTO `score` VALUES ('0003', '0001', 70.0);
INSERT INTO `score` VALUES ('0003', '0002', 77.0);
INSERT INTO `score` VALUES ('0003', '0003', 60.0);SET FOREIGN_KEY_CHECKS = 1;

2、效果图说明,第一列用户信息stu_no,第二列课程号course_no,第三列课程成绩
在这里插入图片描述

stu_no语文数学英语
000140.050.048.0
000240.030.099.0
000370.077.060.0

3、实现SQL

select stu_no,sum(IF(course_no = '0001', score_prize, 0)) as '语文',sum(IF(course_no = '0002', score_prize, 0)) as '数学',sum(IF(course_no = '0003', score_prize, 0)) as '英语'
from score
group by stu_no;

场景2:列转换行

1、准备数据表结构和数据

/*Navicat Premium Data TransferSource Server         : 本地Source Server Type    : MySQLSource Server Version : 80027Source Host           : localhost:3306Source Schema         : schoolTarget Server Type    : MySQLTarget Server Version : 80027File Encoding         : 65001Date: 13/06/2024 14:54:37
*/SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for cjs
-- ----------------------------
DROP TABLE IF EXISTS `cjs`;
CREATE TABLE `cjs`  (`name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,`chinese` int NULL DEFAULT NULL,`math` int NULL DEFAULT NULL,`phy` int NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of cjs
-- ----------------------------
INSERT INTO `cjs` VALUES ('张三', 89, 90, 79);
INSERT INTO `cjs` VALUES ('李四', 88, 79, 90);SET FOREIGN_KEY_CHECKS = 1;

2、效果图

在这里插入图片描述

namecourse
张三90
张三89
张三79
李四79
李四88
李四90

3、业务代码

select *
from (select name, math as coursefrom cjsunion allselect name, chinese as coursefrom cjsunion allselect name, phy as coursefrom cjs) t
order by t.name;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/26366.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows 环境下使用git命令导出差异化文件及目录

一、找出差异化的版本(再此使用idea的show history) 找到两个提交记录的id 分别为: 二、使用git bash执行命令(主要使用 tar命令压缩文件) 输出结果:

“人事助理转产品经理”历险记

​好久没写就业喜报了 去年太忙,年后了,必须给大家把同学们就业的情况梳理一下分享出来。希望对大家有所帮助。 同学档案 原岗位:HR 地点:西安 工作年限:2年 转岗级别:中级产品经理 转岗工资&#xff1…

Linux时间子系统2: clock_gettime的VDSO机制分析

在之前分析clock_gettime的文章中接触到了VDSO,本篇文章是对VDSO的学习总结,借鉴了很多前人的经验。 1. 什么是VDSO vDSO:virtual DSO(Dynamic Shared Object),虚拟动态共享库,内核向用户态提供了一个虚拟的动态共享库。在 Linux …

Vue.js结合ASP.NET Core构建用户登录与权限验证系统

1. 环境准备2. 创建项目3. Vue配置步骤一: 安装包步骤二: 配置文件步骤三: 页面文件 4. 后台配置 在本教程中,我将利用Visual Studio 2022的强大集成开发环境,结合Vue.js前端框架和ASP.NET Core后端框架,从头开始创建一个具备用户登录与权限验…

恭喜!X医生斩获英国伦敦大学学院访问学者邀请函

伦敦大学学院(University College London,简称:UCL),1826年创立于英国伦敦,是一所公立研究型大学。伦敦大学联盟的创校学院、罗素大学集团和欧洲研究型大学联盟创始成员,也是金三角名校和G5之一…

电商开发者必读:微店商品详情API接口全解析

微店作为一个流行的电商平台,提供了丰富的API接口供开发者使用。详细介绍商品详情API接口的使用方法,帮助开发者快速获取商品信息,实现商品信息的自动化展示和管理。 1. 接口简介 微店商品详情API接口允许开发者通过商品ID获取商品的详细信…

银行业信息技术外包(ITO)深度解析:现状、挑战、业务分类与协同策略

一、引言 最近有朋友在咨询关于银行业信息技术外包(ITO)这块业务,同时也在网上看到了关于银行业信息技术外包(ITO)的相关信息,今天正好有时间,通过采集的相关信息结合自己的相关工作接触到的相关…

云原生应用开发培训,开启云计算时代的新征程

在云计算时代,云原生应用开发技术已经成为IT领域的热门话题。如果您想要转型至云原生领域,我们的云原生应用开发培训将帮助您开启新征程。 我们的课程内容涵盖了云原生技术的基础概念、容器技术、微服务架构、持续集成与持续发布(CI/CD&#…

Android低代码开发 - InputMenuPanelItem详解

我们知道MenuPanel是一个菜单面板容器,它里面可以放各式各样的菜单和菜单组。今天我们就来详细讲解输入菜单这个东西。 InputMenuPanelItem源码 package dora.widget.panel.menuimport android.content.Context import android.text.Editable import android.text…

怎么写自动注册苹果ID的工具,会用到哪些源代码?

在数字化时代,苹果ID成为了连接苹果生态系统中各项服务的关键桥梁,然而,手动注册苹果ID的过程往往繁琐且耗时,因此,开发一款能够自动注册苹果ID的工具成为了许多开发者的追求。 本文将科普如何编写这样的工具&#xf…

PFC旁路二极管、继电器驱动电路以及PFC主功率

R001和R002以及R003三个电阻作用是限放X电容上的电 整流桥串联两个BJ1和BJ2 电容C3:给整流桥储能,给后续llc供电 PFC工作是正弦波上叠加高频电流 PFC功率部分 2个PFC电感(选择两个磁芯骨架小,有利于散热)、2个续流二极管&…

在亚马逊云上部署WordPress:一个完整的LAMP环境安装教程

什么是LAMP LAMP是一个流行的开源软件堆栈,用于网站和网络应用程序的开发和部署。LAMP是几个主要组件的首字母缩写,包括: Linux:操作系统层,LAMP通常部署在Linux操作系统上,但它也可以使用其他类似Unix的…

获取闲鱼商品详情api

要使用闲鱼商品详情API,你需要先申请一个开发者账号,并且在开发者中心创建一个应用,目前很难申请到,还有一个方式是获取第三方应用的AppKey和AppSecret直接使用。 API的请求地址为: https://api.m.taobao.com/h5/mto…

Web 前端三大主流框架

Web 前端开发中,三大主流框架分别是 React、Vue.js 和 Angular。这些框架各有优缺点,并且适用于不同的项目需求。以下是对这三大框架的详细介绍: 1. React 概述 React 是由 Facebook 开发和维护的开源 JavaScript 库,用于构建用…

t265 jetpack 6 px4 ros2

Ubuntu22.04 realsenseSDK2和ROS2Wrapper安装方法,包含T265版本踩坑问题_ros2 realsense-CSDN博客 210 git clone https://github.com/IntelRealSense/librealsense.git 212 git branch 215 git tag 218 git checkout v2.51.1 219 git branch 265 git clone https://…

【稳定检索/投稿优惠】2024年材料科学与能源工程国际会议(MSEE 2024)

2024 International Conference on Materials Science and Energy Engineering 2024年材料科学与能源工程国际会议 【会议信息】 会议简称:MSEE 2024大会地点:中国苏州会议官网:www.iacmsee.com会议邮箱:mseesub-paper.com审稿结…

PC微信逆向) 定位微信浏览器打开链接的call

首发地址: https://mp.weixin.qq.com/s/Nik8fBF3hxH5FPMGNx3JFw 前言 最近想写一个免费的微信公众号自动采集的工具,我看公众号文章下载需求还挺多的。搜了下github,免费的工具思路大多都是使用浏览器打开公众号主页获取到需要的请求参数,例…

uniapp scroll-view下拉刷新无法复位

动态设置refresher-triggered的值&#xff0c;当触发下拉刷新时&#xff0c;refresher-triggered true&#xff1b;当下拉刷新执行完之后refresher-triggered false。 <scroll-view :scroll-top"scrollTop" scroll-y"true":refresher-triggered"…

雷军出手,光储充一体化赛道可太行了

雷军出手&#xff0c;特斯拉、宁德时代、奥能电源持续加码&#xff0c;光储充一体化赛道可太行了 近几年&#xff0c;各地光储充一体化项目遍地开花&#xff0c;正式投入运营的新闻接连不断。被视为全球能源转型重要驱动力的光储充一体化&#xff0c;已成为各大企业竞相入局的新…

ReentrantLock的非公平锁(NonfairSync)深度解析:源码之旅与实战策略

1. 引言 在Java并发编程中,ReentrantLock作为一种可重入的互斥锁,提供了比synchronized更强大和灵活的功能。其中,NonfairSync作为ReentrantLock内部非公平锁的实现,其设计理念和源码实现都体现了对性能和公平性的权衡。 2. NonfairSync概述 非公平锁特性: 新到达的线程在…