mysql横竖查询

更新时间:02-08 教程 由 往日 分享

MySQL是一种广泛使用的关系型数据库管理系统,其在数据查询和管理方面非常强大。本篇文章将详细介绍MySQL中横竖查询的实现方法。

横向查询是将一行中的多个字段转换成多行的查询结果,通常使用UNION ALL和CASE WHEN语句实现。例如,我们有如下一张表:

CREATE TABLE `score` (`student` varchar(10) NOT NULL,`chinese` int(3) NOT NULL,`math` int(3) NOT NULL,`english` int(3) NOT NULL);

我们可以使用如下的SQL语句实现横向查询:

SELECT `student`, 'chinese' AS `subject`, `chinese` AS `score` FROM `score`UNION ALLSELECT `student`, 'math' AS `subject`, `math` AS `score` FROM `score`UNION ALLSELECT `student`, 'english' AS `subject`, `english` AS `score` FROM `score`;

竖向查询是将多行中的某些字段转换成多列的查询结果,通常使用GROUP BY和SUM、CASE WHEN等聚合函数实现。例如,我们有如下的一张表:

CREATE TABLE `sales` (`id` INT(11) NOT NULL AUTO_INCREMENT,`date` DATE NOT NULL,`product` VARCHAR(50) NOT NULL,`amount` INT(11) NOT NULL,PRIMARY KEY (`id`));

我们可以使用如下的SQL语句实现竖向查询:

SELECT `product`,SUM(CASE WHEN YEAR(`date`) = '2021' THEN `amount` ELSE 0 END) AS `2021`,SUM(CASE WHEN YEAR(`date`) = '2020' THEN `amount` ELSE 0 END) AS `2020`,SUM(CASE WHEN YEAR(`date`) = '2019' THEN `amount` ELSE 0 END) AS `2019`FROM `sales`GROUP BY `product`;

综上所述,MySQL中的横竖查询可以通过使用UNION ALL、CASE WHEN、聚合函数等语句实现。这些查询方法可以帮助我们更好地抽取和分析数据,提高数据转换和处理的效率。

声明:关于《mysql横竖查询》以上内容仅供参考,若您的权利被侵害,请联系13825271@qq.com
本文网址:http://www.25820.com/tutorial/14_2071851.html