求助:带DISTINCT的CASE WHEN语句语法错误排查(Opportunity表)
你的CASE WHEN语句存在这些问题
- 语法结构错误:重复使用了
CASE关键字,正确的CASE表达式仅需开头写一次CASE,后续分支用WHEN...THEN...即可,无需每个分支都加CASE;同时分支之间不能用OR连接,CASE表达式是按顺序匹配分支逻辑的。 - 缺少兜底分支(可选但建议):如果存在未匹配到的
StageName值,结果会返回NULL,建议添加ELSE op.[StageName]保留原字段值,避免空值出现。 - 可选优化:可以给重命名后的字段添加别名,方便后续识别使用,比如
AS RenamedStage。
修正后的代码示例
SELECT DISTINCT op.[StageName], CASE WHEN op.[StageName] = 'Conversation/Idea' THEN '5.Conversation/Idea' WHEN op.[StageName] = 'RFP/Brief Stage' THEN '4.RFP/Brief Stage' WHEN op.[StageName] = 'RFI Stage' THEN '3.RFI Stage' WHEN op.[StageName] = 'Pitched' THEN '2.Pitched' WHEN op.[StageName] = 'Shortlisted' THEN '1.Shortlisted' ELSE op.[StageName] -- 保留未匹配的原阶段名称 END AS RenamedStage FROM [Opportunity] op
内容的提问来源于stack exchange,提问作者PipRon7
相关产品推荐
相关产品推荐

