SELECT
A.MARKETING_PLAN,
A.TERM,
A.TIER
CASE WHEN A.TERM<=60 THEN 'ST' ELSE 'LT' end as TERM_2
FROM ABC A;
我想使用TERM_2字段编写以下case语句(有2个子集:LT和ST)。
案例当TERM_2 = LT且TIER = 5然后5.49 ELSE'NULL'结束为BU
我不能使用上面的case语句,因为刚刚创建了TERM_2。 我想我需要使用子查询,我尝试了很多方法,但它不起作用。 请查看我的代码并帮助我解决问题。 非常感谢提前。
答案 0 :(得分:0)
由于a.bu
取决于a.term_2
和a.tier
的值,因此它间接取决于a.term
字段。因此,如果a.term
大于60,您只需检查a.term_2
是否大于60(LT
等于a.term
。
SELECT
a.marketing_plan,
a.term,
a.tier,
CASE WHEN a.term<=60 THEN 'ST' ELSE 'LT' END AS term_2,
CASE WHEN a.term>60 AND a.tier=5 THEN 5.49 ELSE NULL END AS bu
FROM ABC a;