本文介绍了如何修改此 t-sql 查询以返回不同列名的最大值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下查询:

SELECT
        [Rate],
        [RateMon],
        [RateTue],
        [RateWed],
        [RateThu],
        [RateFri],
        [RateSat],
        [RateSun]
    FROM
        [Room]
    WHERE
        Id=@Id

我不想返回所有列,我只想返回 Rate 和 RateMon、RateTue、RateWed、RateThu、RateFri、RateSat 和 RateSun 之间的最大值,但我很难因为列名不同.

Instead of returning all the columns, I just want to return Rate and the Maximum value between RateMon, RateTue, RateWed, RateThu, RateFri, RateSat, and RateSun, but I am having a hard time because the column names are different.

现在返回的示例结果是:

An example result return now is:

100、400、400、400、400、600、600、600

100, 400, 400, 400, 400, 600, 600, 600

其中 100 是 Rate,其他值对应于 Mon - Sun,但在这种情况下我只想返回 100 和 600.

where 100 is the Rate and the other values correspond to Mon - Sun, but I want to return just 100 and 600 in this case.

推荐答案

SELECT  [Rate],
        (SELECT MAX(T.[Rate])
         FROM (VALUES([RateMon]),
                     ([RateTue]),
                     ([RateWed]),
                     ([RateThu]),
                     ([RateFri]),
                     ([RateSat]),
                     ([RateSun])) AS T([Rate])
        ) AS MaxRate
FROM [Room]
WHERE Id=@Id

这篇关于如何修改此 t-sql 查询以返回不同列名的最大值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-25 09:44