-- 示例数据表: 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 中文站