首页 > 解决方案 > 使用新列名取消透视

问题描述

输入表

姓名 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

我怎样才能做到这一点?

标签: sqlsql-server-2012

解决方案


您可以使用简单的案例表达。

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

推荐阅读