如何获得列标头值列作为结果??Sql Server 2008

本文关键字:结果 Sql Server 2008 何获得 | 更新日期: 2023-09-27 17:49:37

嗨,我是初学者,试图在列中获取列头值,使其值不等于'0.0'或'0'

我的查询是

select M1,M2,M3,M4,M5,M6,M7,M8,M9,M10 from [dbo].[Target]

查询结果为,

M1   M2   M3   M4   M5   M6   M7   M8   M9   M10
0    5.0  0.0  1.0  0.0  2.0  3.0  9.0  0    0.0

我正在尝试得到这个格式的结果,

M2  5.0
M4  1.0
M6  2.0
M7  3.0
M8  9.0

不包含"0"answers"0.0"的列在查询结果

希望您的建议,谢谢提前。

如何获得列标头值列作为结果??Sql Server 2008

类似于

SELECT ColName,Value
FROM dbo.Target t
UNPIVOT (Value for ColName in (M1,M2,M3,M4,M5,M6,M7,M8,M9,M10)) u
WHERE Value != 0

参见PIVOT和UNPIVOT。结果:

ColName               Value
--------------------- ----------------------
M2                    5
M4                    1
M6                    2
M7                    3
M8                    9