加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 数据库 > MsSql > 正文

sql-server-2008 – 如何修改此t-sql查询以返回不同列名的最大值?

发布时间:2020-05-24 19:18:23 所属栏目:MsSql 来源:互联网
导读:我有以下查询: SELECT [Rate], [RateMon], [RateTue], [RateWed], [RateThu], [RateFri], [RateSat], [RateSun] FROM [Room] WHERE

我有以下查询:

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

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

现在返回的示例结果是:

100,400,600,600

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

解决方法

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

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读