【发布时间】:2015-04-30 18:51:57
【问题描述】:
我正在寻找一组列中的最大值以及列名。例如,给定:
| Id | A | B | C |
------------------
| 1 | 1 | 2 | 3 |
我希望:
| Id | Column | Value |
------------------------
| 1 | C | 3 |
我已经得到了查询的一部分来确定最大值,但我也在努力显示它来自哪一列。
SELECT Id,
(SELECT Max(v)
FROM (VALUES (A), (B), (C)) AS value(v)) as MaxValue
FROM [dbo].[MyTable]
我觉得我真的很接近了,但我不知道如何完成这个。谢谢!
【问题讨论】:
-
如果您有
A = 1, B = 3, C = 3的记录,您是否希望在输出中为该id提供两行? -
@Dan 这是一个很好的问题。业务逻辑确实允许这种行为,但我们还没有定义在这种情况下应该发生什么。我想应该显示两个/所有等效结果。列 = BC,值 = 3
标签: sql sql-server