Подзапрос с указанием регистра
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 (имеет 2 подмножества:LT и ST).
СЛУЧАЙ, КОГДА TERM_2=LT и TIER=5 THEN 5.49 Иначе 'NULL' END AS BU
Я не могу использовать приведенный выше оператор case, так как TERM_2 только что создан. Я думаю, что мне нужно использовать подзапрос, и я пробовал много способов, но он не работает. Пожалуйста, посмотрите на мой код и помогите мне решить проблему. Спасибо заранее.
1 ответ
Так как a.bu
зависит от стоимости a.term_2
а также a.tier
косвенно зависит от a.term
поле. Так что вам просто нужно проверить, a.term
больше 60 (a.term_2
равно LT
если a.term
больше 60).
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;