sql-server - 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 任何帮助将不胜感激。
解决方案
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