sql - 如何在 SQL Server 中将行值显示为列值
问题描述
我有一张表,我想将行值显示为列值。
据我所知,PIVOT 功能用于它。
原表结构如下https://ibb.co/MVdsD01
并且所需的表应该像https://ibb.co/Vt704WF
因此,从上面的两个图像中,您可以发现类别、颜色和百分比列值希望按行显示为行值。
解决方案
您不需要枢轴,只需使用CASE
SELECT line,
MAX(CASE WHEN category = 'UT' THEN duration END) AS ut_min,
MAX(CASE WHEN category = 'UT' THEN percentage END) AS ut_percentage,
MAX(CASE WHEN category = 'UT' THEN color END) AS ut_color,
MAX(CASE WHEN category = 'AOOT' THEN duration END) AS aoot_min,
MAX(CASE WHEN category = 'AOOT' THEN percentage END) AS aoot_percentage,
MAX(CASE WHEN category = 'AOOT' THEN color END) AS aoot_color
--, the rest of your columns...
FROM table_name
GROUP BY line
ORDER BY line;
推荐阅读
- java - 如何在不使用 bean 或注释的情况下手动初始化 Spring Boot 存储库?(科特林)
- shader - webgl 为什么在着色器中使用版本 300 时出现错误
- flutter - 有没有办法将多个元注释组合成一个?
- javascript - 如何使用 NodeJS 和 Javascript 导入具有子文档的 Mongoose 大型 CSV 文件(15M 数据)?
- swift - App Delegate,在 OAuth 之后,无法关闭 WebView
- dynamics-crm - 将业务流程显示状态保持为折叠状态
- php - 在运行表的 SQL 补丁时锁定数据库
- ios - 如何允许用户在保存之前预览图像并赋予他们取消的能力
- python - 如何从数据库中生成每日/每周/每月/每年的汇总值
- elasticsearch - Elassandra 索引数据大小是实际数据的 10 倍