输出具有最高值的列名称

时间:2015-06-02 14:26:44

标签: sql-server reporting-services

我在SQL Server表中有很多带有数字的列。 我需要检查最高编号的特定列,并输出表中每行的列名。

例如:

RED | BLUE | GREEN | BLACK | Highest Column

0      2       1       4         BLACK <-- Outputted result of an expression

我有一个数据集,可以从数据库表中提取所有列。 我需要一个表达式来评估数据并返回最高值的列名。

我不确定这种情况背后的逻辑。任何帮助将不胜感激。

这是一份SSRS报告。

Need to find the biggest value of all these columns for each row

1 个答案:

答案 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应该很容易。