SQL case when 行列转换
时间: 2023-09-07 14:18:05 浏览: 95
Oracle SQLServer行列转换
你可以使用 SQL 的 CASE WHEN 语句来进行行列转换。下面是一个示例,假设你有一个包含年份和销售额的表格,你想将每年的销售额作为列名,而每个月的销售额作为对应的值。
```sql
SELECT
YEAR,
SUM(CASE WHEN MONTH = 1 THEN Sales ELSE 0 END) AS January,
SUM(CASE WHEN MONTH = 2 THEN Sales ELSE 0 END) AS February,
SUM(CASE WHEN MONTH = 3 THEN Sales ELSE 0 END) AS March,
-- 继续添加其他月份...
FROM
YourTable
GROUP BY
YEAR;
```
在上述示例中,我们使用了 CASE WHEN 语句来根据月份将每个销售额放在对应的列上。如果月份不匹配,则填入0。最后我们使用了 GROUP BY 子句,按年份进行分组。
请根据你的具体需求修改表名、列名和条件。这只是一个简单的示例,你可以根据自己的情况进行调整。
阅读全文