我想编写一个SQL语句,该语句基于具有三种可能结果的CASE语句返回一个值。SQL在CASE语句为真时返回另一个表的值
1)如果该列值与“C0”则返回两列的级联在表
2)如果该列与“L0”开始开始再取在另一列(_PARENT_PROJECT_NUMBER的值)在那一行,看看这个值是否在另一个表中。如果不是,则返回值_PARENT_PROJECT_NUMBER。
3)如果_PARENT_PROJECT_NUMBER确实驻留在另一个表中,则返回另一个表“Rollup_Project_Mapping”中列“Rollup_Project”中的值。
我写下面的语句工作正常,除了第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";
谢谢!完美工作! – christopheralan88