我需要使用使用第二个选择的CASE语句进行查询,在第二个选择中,我需要在where子句中使用父级的选择ID。
它看起来像这样:
SELECT "OFF_ID" AS "ID_P",
CASE
WHEN
( SELECT "OFF_NUMBER" FROM "OFFER_COPY"
WHERE "OFF_C_ID" = "ID_P" <-- I need to map to the parent ID
) > 0
THEN 'JOHN'
ELSE 'DOE'
END AS "TEST",
FROM "OFFER"
答案 0 :(得分:1)
您应该始终对列名进行限定,尤其是在相关子查询中:
SELECT o."OFF_ID" AS "ID_P",
(CASE WHEN (SELECT oc."OFF_NUMBER"
FROM "OFFER_COPY" oc
WHERE oc."OFF_C_ID" = o."OFF_ID"
) > 0
THEN 'JOHN' ELSE 'DOE'
END) AS "TEST",
FROM "OFFER" o