sql - 使用新列名取消透视
问题描述
输入表
姓名 | col1 | col2 | col3 | MaxMarkSub |
---|---|---|---|---|
蒂拉克 | 90 | 40 | 60 | col1 |
拉吉 | 30 | 50 | 10 | col2 |
阿马尔 | 90 | 40 | 60 | col3 |
拉梅什 | 30 | 50 | 10 | col2 |
我想把它安排如下:
姓名 | col1 | col2 | col3 | 映射 | 输出 |
---|---|---|---|---|---|
蒂拉克 | 90 | 40 | 60 | col1 | 90 |
拉吉 | 30 | 50 | 10 | col2 | 50 |
阿马尔 | 90 | 40 | 60 | col3 | 60 |
拉梅什 | 30 | 65 | 10 | col2 | 65 |
我怎样才能做到这一点?
解决方案
您可以使用简单的案例表达。
SELECT name, col1, col2, col3, MaxMarkSub AS mapping,
case MaxMarkSub when 'col1' then col1
when 'col2' then col2
when 'col3' then col3
end as output
from TableName
推荐阅读
- mysql - 如何将mysql上的其他行表GROUP_CONCAT到PHP中的关联数组中
- c# - 由于错误类型“...”未标记为可序列化,C# 无法调整控件大小
- crystal-reports - 如何在每页水晶报表中打印特定行
- python-3.x - Lambda 函数如何获取给定 S3 路径中最后修改文件的名称?
- pjsip - PJSIP 在树莓派模型 3B+ 中引起断言
- java - Spring Boot JSON解析错误:无法构造模型实例
- c# - 如何根据列值从 Excel 电子表格中选择行并将其插入 dataGridViews?
- database - 关于在 PostgreSQL 中重构/扩展基于事件的巨大生产表的建议
- xml - 使用条件 xslt 1.0 将特定元素值替换为新字符串
- c# - 返回时我收到错误
`.. ASP.NET