我正在尝试为PS查询结果的字段派生值,并且该值基于多个表字段,而不仅仅是一个。这是我开始工作的代码示例:
DECODE(A.ACAD_PLAN,'BA 000','ASSIGN',Q.ACAD_PLAN,NULL,'DO NOT ASSIGN').
我的数据有3个选项:
ACAD_PLAN = 'BA 000'
(我希望它指定“ASSIGN”)ACAD_GROUP = 'SAM' and ACAD_PLAN is NULL
(指定“请勿指定”)ACAD_GROUP = 'SAM' and ACAD_PLAN = 'SAM xxx'
SAM 后可能有多个计划代码,(分配"ASSIGN WITH CAUTION"
)上面的代码可以插入'ASSIGN'
和'DO NOT ASSIGN'
,但这会留下#3。为了尽可能简化,我想简单地说:ELSE 'ASSIGN WITH CAUTION'
。我试着把它写成:
DECODE(A.ACAD_PLAN,'BA 000','ASSIGN',Q.ACAD_PLAN,NULL,'DO NOT ASSIGN','ASSIGN WITH CAUTION')
我的结果是只填充了"ASSIGN"
,其他所有内容都是空白的。
有什么想法吗?
答案 0 :(得分:2)
最简单的方法是使用case语句。你没有提到你的数据库是什么,但语法应该与此类似。
select
Case
when ACAD_PLAN = 'BA 000' then 'ASSIGN'
when ACAD_GROUP = 'SAM' and ACAD_PLAN is NULL then 'DO NOT ASSIGN'
when ACAD_GROUP = 'SAM' and ACAD_PLAN = 'SAM xxx' then 'ASSIGN WITH CAUTION'
End
From ....