首页 > 解决方案 > SQL Server 中的 Max 和 Decode 转换

问题描述

我想将这段查询转换为在 SQL Server 中运行,它取自 Oracle 查询:

SELECT    
    x.JudgmentMonth,
    MAX(DECODE(x.RecordType, '1', x.Volumes)) CONSUMER,
    MAX(DECODE(x.RecordType, '2', x.Volumes)) COMMERCIAL
FROM    
    (SELECT    
         r.JudgmentMonth, r.RecordType, r.Volumes
     FROM    
         dset r) x
GROUP BY 
    x.JudgmentMonth

我不熟悉 SQL Server 任何帮助将不胜感激。

标签: sql-serverdatabaseoracledatabase-administrationssms-2014

解决方案


Oracle 本质上decode是 ANSI-SQLcase表达式的简写:

MAX(CASE x.RecordType WHEN '1' THEN x.Volumes END) CONSUMER,
MAX(CASE x.RecordType WHEN '2' THEN x.Volumes END) COMMERCIAL

推荐阅读