-- 示例数据表: sales
-- +----+--------+-------+
-- | id | month | sales |
-- +----+--------+-------+
-- | 1 | Jan | 100 |
-- | 1 | Feb | 150 |
-- | 1 | Mar | 200 |
-- | 2 | Jan | 120 |
-- | 2 | Feb | 180 |
-- | 2 | Mar | 250 |
-- +----+--------+-------+
-- 使用 CASE WHEN 实现行转列
SELECT
id,
MAX(CASE WHEN month = 'Jan' THEN sales END) AS Jan,
MAX(CASE WHEN month = 'Feb' THEN sales END) AS Feb,
MAX(CASE WHEN month = 'Mar' THEN sales END) AS Mar
FROM sales
GROUP BY id;
-- 解释说明:
-- 1. 使用 CASE WHEN 语句将每个月的销售额转换为列。
-- 2. 使用 MAX 函数是因为在每个 id 和 month 的组合中只会有一个值,MAX 可以确保我们获取到该值。
-- 3. GROUP BY id 是为了按 id 分组,从而实现每个 id 对应一行的结果。
上一篇:mysql 调用存储过程
下一篇:mysql char
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站