首页 > 解决方案 > 在 SQL 中查找行的最大值

问题描述

我有一张这样的桌子

合同 值 1 价值 2 价值 3 价值 4
A1 1 3 4 8
A2 9 3 8 3

如何找到每份合约的 1 2 3 4 5 的最大值

合同 值 1 价值 2 价值 3 价值 4 最大值
A1 1 3 4 8 8
A2 9 3 8 3 9

请帮忙。

标签: sql-server

解决方案


一种方法是使用VALUES子句取消透视数据,然后获取MAX

SELECT Contract,
       Value1,
       Value2,
       Value3,
       Value4,
       (SELECT MAX([Value])
        FROM (VALUES(Value1),
                    (Value2),
                    (Value3),
                    (Value4))V(Value)) AS MaxValue
FROM dbo.YourTable;

推荐阅读