mysql 行转列 多个字段
时间: 2023-07-06 12:43:44 浏览: 134
如果您需要将多个字段进行行列转换,可以使用 MySQL 的 CASE WHEN 语句和聚合函数来实现。以下是一个例子,假设您有一个名为 "sales" 的表,其中包含字段 "product_name"、"sales_year" 和 "sales_amount"。现在您需要将表格转换为以 "product_name" 为行、"sales_year" 为列、"sales_amount" 为值的形式。
```
SELECT
product_name,
SUM(CASE WHEN sales_year = '2019' THEN sales_amount ELSE 0 END) AS `2019`,
SUM(CASE WHEN sales_year = '2020' THEN sales_amount ELSE 0 END) AS `2020`,
SUM(CASE WHEN sales_year = '2021' THEN sales_amount ELSE 0 END) AS `2021`
FROM
sales
GROUP BY
product_name;
```
上述 SQL 语句将返回一个结果集,其中每一行表示一个产品及其在不同年份的销售额。其中,我们使用了三个 CASE WHEN 语句来将 "sales_year" 转换为不同的列,使用 SUM 函数来计算每个产品在每个年份的销售额。
请注意,上述语句中使用了反引号(`)来引用列名。这是因为 "2019"、"2020" 和 "2021" 是数字,不能作为列名使用。因此,我们需要将它们用反引号引起来,以便 MySQL 可以正确地解析它们。
阅读全文