回答

收藏

当CASE语句为true时,SQL返回另一个表的值

技术问答 技术问答 246 人阅读 | 0 人回复 | 2023-09-12

我想写一个SQL基于三个可能结果的句子CASE句子返回一个值。
' Y2 V+ \9 Q2 ]1)如列值为’C0’开头,它返回表中两列串联
, K* P4 p) q* ]$ X1 d2)如果列出
! h! j" x' X7 u9 ]2 i, t6 G# r( GL0开头,将该值放在银行的另一列(_PARENT_PROJECT_NUMBER)检查该值是否停留在另一个表中。如果没有,则返回值_PARENT_PROJECT_NUMBER。" M% y5 T7 l  Q9 y
3)如果_PARENT_PROJECT_NUMBER如果确实位于另一个表中,则返回另一个表 Rollup_Project_Mapping”中“7 M! }  i. }) W. p9 ]7 }, e
Rollup_Project列中的值。
8 {% n! O7 K' G# u1 s" Z1 W除第12行外,我在下面写的句子"Rollup_Project_Mapping"."Rollup_Project"均能正常工作,如果在另一张表中找到_PARENT_PROJECT_NUMBER,我希望它能回到另一张表的值。这是个错误的消息:1 L1 S1 |& V" O
ERROR:  syntax error at or near "FROM"LINE 12:      FROM "Rollup_Project_Mapping"."Rollup_Project"当CASE句子的这部分是true有人知道如何在另一个表中返回该值吗?- i1 P" ?1 r0 |; I. z
SELECTCASE   WHEN LEFT("_PROJECT_NUMBER",2)='C0' THEN ||"_PROJECT_NUMBER"||') '||"_PROJECT_DESCRIPTION"  WHEN LEFT("_PROJECT_NUMBER",2)='L0' THEN    CASE      WHEN (SELECT "Rollup_Project" FROM &quotroject_Rollup_Mapping" WHERE &quotA_ACCOUNTED_TEST"."_PARENT_PROJECT_NUMBER" = &quotroject_Rollup_Mapping".&quotroject") IS NOT NULL THEN        "Rollup_Project_Mapping"."Rollup_Project"    ELSE "_PARENT_PROJECT_NUMBER"    ENDEND AS Rollup_Project2FROM &quotA_ACCOUNTED_TEST";               
5 c3 h4 }% m* b! f    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则