SQL возвращает значение другой таблицы, когда оператор CASE равен true
Я хочу написать оператор SQL, который возвращает значение на основе оператора CASE, который имеет три возможных результата.
1) Если значение столбца начинается с 'C0', то оно возвращает объединение двух столбцов в таблице
2) Если столбец начинается с 'L0', возьмите значение в другом столбце (_PARENT_PROJECT_NUMBER) в этой строке и посмотрите, находится ли это значение в другой таблице. Если нет, верните значение _PARENT_PROJECT_NUMBER.
3) Если _PARENT_PROJECT_NUMBER действительно находится в другой таблице, верните значение в столбце "Rollup_Project" в другой таблице, "Rollup_Project_Mapping".
Утверждение, которое я написал ниже, работает нормально, за исключением строки 12,"Rollup_Project_Mapping"."Rollup_Project"
где я хочу, чтобы он возвращал значение другой таблицы, если _PARENT_PROJECT_NUMBER найден в другой таблице. Вот сообщение об ошибке:
ERROR: syntax error at or near "FROM"
LINE 12: FROM "Rollup_Project_Mapping"."Rollup_Project"
Кто-нибудь знает, как я могу вернуть значение в другой таблице, когда эта часть оператора CASE верна?
SELECT
CASE
WHEN LEFT("_PROJECT_NUMBER",2)='C0' THEN
'('||"_PROJECT_NUMBER"||') '||"_PROJECT_DESCRIPTION"
WHEN LEFT("_PROJECT_NUMBER",2)='L0' THEN
CASE
WHEN (SELECT "Rollup_Project" FROM "Project_Rollup_Mapping" WHERE "PA_ACCOUNTED_TEST"."_PARENT_PROJECT_NUMBER" = "Project_Rollup_Mapping"."Project") IS NOT NULL THEN
"Rollup_Project_Mapping"."Rollup_Project"
ELSE "_PARENT_PROJECT_NUMBER"
END
END AS Rollup_Project2
FROM "PA_ACCOUNTED_TEST";