Maison > base de données > tutoriel mysql > le corps du texte

Exemple de partage de code pour implémenter la conversion de ligne en colonne et de colonne en ligne MySQL

黄舟
Libérer: 2017-03-23 13:43:16
original
2250 Les gens l'ont consulté

Cet article présente principalement les informations pertinentes sur les exemples mysql ligne à colonne et colonne à ligne. Les amis dans le besoin peuvent se référer à

mysql ligne à colonne et colonne à ligne.

La déclaration n'est pas difficile, donc je ne l'expliquerai pas trop. Lorsque vous lisez la déclaration, analysez-la phrase par phrase de l'intérieur.

Convertir les lignes en colonnes

Il y a un tableau comme indiqué sur l'image. Maintenant, je veux que les résultats de la requête convertissent les lignes en colonnes

Exemple de partage de code pour implémenter la conversion de ligne en colonne et de colonne en ligne MySQL

.

L'instruction de création de table est la suivante :

CREATE TABLE `TEST_TB_GRADE` (
 `ID` int(10) NOT NULL AUTO_INCREMENT,
 `USER_NAME` varchar(20) DEFAULT NULL,
 `COURSE` varchar(20) DEFAULT NULL,
 `SCORE` float DEFAULT '0',
 PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
Copier après la connexion
insert into TEST_TB_GRADE(USER_NAME, COURSE, SCORE) values
("张三", "数学", 34),
("张三", "语文", 58),
("张三", "英语", 58),
("李四", "数学", 45),
("李四", "语文", 87),
("李四", "英语", 45),
("王五", "数学", 76),
("王五", "语文", 34),
("王五", "英语", 89);
Copier après la connexion

Instruction de requête :

La raison pour laquelle MAX est utilisé ici est de définir les points sans données sur 0 à empêcher NULL

SELECT user_name ,
  MAX(CASE course WHEN '数学' THEN score ELSE 0 END ) 数学,
  MAX(CASE course WHEN '语文' THEN score ELSE 0 END ) 语文,
  MAX(CASE course WHEN '英语' THEN score ELSE 0 END ) 英语
FROM test_tb_grade
GROUP BY USER_NAME;
Copier après la connexion

Affichage des résultats :

Exemple de partage de code pour implémenter la conversion de ligne en colonne et de colonne en ligne MySQL

Colonne à rangée

Il y a un tableau comme indiqué sur l'image, j'espère maintenant que les résultats de la requête seront répertoriés en lignes

Exemple de partage de code pour implémenter la conversion de ligne en colonne et de colonne en ligne MySQL

L'instruction de création de table est la suivante :

CREATE TABLE `TEST_TB_GRADE2` (
 `ID` int(10) NOT NULL AUTO_INCREMENT,
 `USER_NAME` varchar(20) DEFAULT NULL,
 `CN_SCORE` float DEFAULT NULL,
 `MATH_SCORE` float DEFAULT NULL,
 `EN_SCORE` float DEFAULT '0',
 PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
Copier après la connexion
insert into TEST_TB_GRADE2(USER_NAME, CN_SCORE, MATH_SCORE, EN_SCORE) values
("张三", 34, 58, 58),
("李四", 45, 87, 45),
("王五", 76, 34, 89);
Copier après la connexion

Instruction de requête :

select user_name, '语文' COURSE , CN_SCORE as SCORE from test_tb_grade2
union select user_name, '数学' COURSE, MATH_SCORE as SCORE from test_tb_grade2
union select user_name, '英语' COURSE, EN_SCORE as SCORE from test_tb_grade2
order by user_name,COURSE;
Copier après la connexion

Affichage du résultat :

Exemple de partage de code pour implémenter la conversion de ligne en colonne et de colonne en ligne MySQL

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal