網(wǎng)站首頁(yè) mysql 正文
問題 行列互換
場(chǎng)景1 行轉(zhuǎn)換列
1、表結(jié)構(gòu)和數(shù)據(jù)
/*
Navicat Premium Data Transfer
Source Server : 本地
Source Server Type : MySQL
Source Server Version : 80027
Source Host : localhost:3306
Source Schema : school
Target Server Type : MySQL
Target Server Version : 80027
File Encoding : 65001
Date: 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 '學(xué)號(hào)',
`course_no` varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '課程號(hào)',
`score_prize` decimal(4, 1) NULL DEFAULT NULL COMMENT '成績(jī)',
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,第二列課程號(hào)course_no,第三列課程成績(jī)
stu_no | 語(yǔ)文 | 數(shù)學(xué) | 英語(yǔ) |
---|---|---|---|
0001 | 40.0 | 50.0 | 48.0 |
0002 | 40.0 | 30.0 | 99.0 |
0003 | 70.0 | 77.0 | 60.0 |
3、實(shí)現(xiàn)SQL
select stu_no,
sum(IF(course_no = '0001', score_prize, 0)) as '語(yǔ)文',
sum(IF(course_no = '0002', score_prize, 0)) as '數(shù)學(xué)',
sum(IF(course_no = '0003', score_prize, 0)) as '英語(yǔ)'
from score
group by stu_no;
場(chǎng)景2:列轉(zhuǎn)換行
1、準(zhǔn)備數(shù)據(jù)表結(jié)構(gòu)和數(shù)據(jù)
/*
Navicat Premium Data Transfer
Source Server : 本地
Source Server Type : MySQL
Source Server Version : 80027
Source Host : localhost:3306
Source Schema : school
Target Server Type : MySQL
Target Server Version : 80027
File Encoding : 65001
Date: 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、效果圖
name | course |
---|---|
張三 | 90 |
張三 | 89 |
張三 | 79 |
李四 | 79 |
李四 | 88 |
李四 | 90 |
3、業(yè)務(wù)代碼
select *
from (
select name, math as course
from cjs
union all
select name, chinese as course
from cjs
union all
select name, phy as course
from cjs
) t
order by t.name;
原文鏈接:https://blog.csdn.net/greek7777/article/details/139654295
- 上一篇:沒有了
- 下一篇:沒有了
相關(guān)推薦
- 2022-01-30 uniapp history路由配置,apache服務(wù)器簡(jiǎn)單配置(刷新報(bào)404解決方法)
- 2022-11-19 VSstudio中scanf返回值被忽略的原因及解決方法(推薦)_C 語(yǔ)言
- 2022-09-16 利用Python第三方庫(kù)xlrd讀取Excel中數(shù)據(jù)實(shí)例代碼_python
- 2022-01-29 yii restfull api 訪問404
- 2022-12-07 React元素與組件的區(qū)別示例詳解_React
- 2023-01-19 python使用?f?格式化字符串的用法_python
- 2022-04-12 Oracle同步數(shù)據(jù)到kafka的方法_oracle
- 2022-10-08 ASP.NET泛型三之使用協(xié)變和逆變實(shí)現(xiàn)類型轉(zhuǎn)換_實(shí)用技巧
- 欄目分類
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支