亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL行列互換的實現(xiàn)示例

 更新時間:2024年06月20日 11:37:33   作者:geekmice  
在MySQL中行轉(zhuǎn)列和列轉(zhuǎn)行都是非常有用的操作,本文主要介紹了MySQL行列互換的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

場景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é)號',
  `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語文數(shù)學(xué)英語
000140.050.048.0
000240.030.099.0
000370.077.060.0

3、實現(xiàn)SQL

select stu_no,
       sum(IF(course_no = '0001', score_prize, 0)) as '語文',
       sum(IF(course_no = '0002', score_prize, 0)) as '數(shù)學(xué)',
       sum(IF(course_no = '0003', score_prize, 0)) as '英語'
from score
group by stu_no;

場景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、效果圖

在這里插入圖片描述

namecourse
張三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;

到此這篇關(guān)于MySQL行列互換的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)MySQL行列互換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Navicat異地自動備份MySQL方法詳解(圖文)

    Navicat異地自動備份MySQL方法詳解(圖文)

    Navicat異地自動備份MySQL方法詳解,使用Navicat的需要備份mysql的朋友也方便了
    2012-01-01
  • MySQL啟動報錯:Can not connect to MySQL server的解決方法

    MySQL啟動報錯:Can not connect to MySQL 

    今天打開數(shù)據(jù)庫出現(xiàn)一個錯誤,ERROR 2003: Can't connect to MySQL server on 'localhost' 的錯誤,網(wǎng)上查找原因說是我的mysql服務(wù)沒有打開,所以本文給大家介紹了MySQL啟動報錯:Can not connect to MySQL server的解決方法,需要的朋友可以參考下
    2024-03-03
  • 一文詳解MySQL?text能存多少個字符

    一文詳解MySQL?text能存多少個字符

    在我們使用mysql的時候,對字段的選用以及具體使用什么類型會很有疑問,下面這篇文章主要給大家介紹了關(guān)于MySQL?text能存多少個字符的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • MySQL需要根據(jù)特定順序排序的實現(xiàn)方法

    MySQL需要根據(jù)特定順序排序的實現(xiàn)方法

    在MySQL中,我們可以通過指定順序排序來在查詢結(jié)果中控制數(shù)據(jù)的排列順序,這種排序方式是非常有用的,本文就來介紹一下,感興趣的可以了解一下
    2023-11-11
  • MySQL中復(fù)合索引和覆蓋索引的區(qū)別詳解

    MySQL中復(fù)合索引和覆蓋索引的區(qū)別詳解

    這篇文章主要介紹了MySQL中復(fù)合索引和覆蓋索引的區(qū)別詳解,復(fù)合索引是一種索引,它包含多個字段,復(fù)合索引能夠使一個SQL查詢多個條件時也能走索引,提高查詢性能,需要的朋友可以參考下
    2023-11-11
  • mysql基礎(chǔ)架構(gòu)教程之查詢語句執(zhí)行的流程詳解

    mysql基礎(chǔ)架構(gòu)教程之查詢語句執(zhí)行的流程詳解

    這篇文章主要給大家介紹了關(guān)于mysql基礎(chǔ)架構(gòu)教程之查詢語句執(zhí)行流程的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧
    2018-11-11
  • mysql實現(xiàn)按照某個時間段分組統(tǒng)計

    mysql實現(xiàn)按照某個時間段分組統(tǒng)計

    這篇文章主要介紹了mysql實現(xiàn)按照某個時間段分組統(tǒng)計方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 有關(guān)mysql中ROW_COUNT()的小例子

    有關(guān)mysql中ROW_COUNT()的小例子

    mysql中的ROW_COUNT()可以返回前一個SQL進(jìn)行UPDATE,DELETE,INSERT操作所影響的行數(shù)
    2013-02-02
  • MySQL數(shù)據(jù)庫查看日志操作指南

    MySQL數(shù)據(jù)庫查看日志操作指南

    這篇文章主要介紹了MySQL數(shù)據(jù)庫查看日志操作的相關(guān)資料,文中講了MySQL中的四種日志,分別是錯誤日志、二進(jìn)制日志、查詢?nèi)罩竞吐樵內(nèi)罩?需要的朋友可以參考下
    2025-02-02
  • mysql 5.7.27 安裝配置方法圖文教程

    mysql 5.7.27 安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 5.7.27 安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10

最新評論