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 ALL SELECT `student`, 'math' AS `subject`, `math` AS `score` FROM `score` UNION ALL SELECT `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、聚合函數等語句實現。這些查詢方法可以幫助我們更好地抽取和分析數據,提高數據轉換和處理的效率。
上一篇css 選擇器 非第一個
下一篇css 選擇器 波浪線