我在SQL Server表中有很多带有数字的列。 我需要检查最高编号的特定列,并输出表中每行的列名。
例如:
RED | BLUE | GREEN | BLACK | Highest Column
0 2 1 4 BLACK <-- Outputted result of an expression
我有一个数据集,可以从数据库表中提取所有列。 我需要一个表达式来评估数据并返回最高值的列名。
我不确定这种情况背后的逻辑。任何帮助将不胜感激。
这是一份SSRS报告。
答案 0 :(得分:1)
使用CROSS APPLY。这将为您提供最高价值的颜色(黑色):
DECLARE @t table(red int, blue int, green int, black int)-- | Highest Column
INSERT @t values(0,2,1,4)
SELECT red, blue, green, black, highest
FROM @t -- replace @t with your own table
CROSS APPLY
(SELECT top 1 color highest
FROM
(VALUES('RED', red), ('BLUE', blue),
('GREEN', green), ('BLACK', black)) x(color, value)
ORDER BY value desc) x
用你自己的表替换@t应该很容易。