我有以下查询:
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