我有一个问题:
SELECT
PERSON_NAME
FROM
PERSON
WHERE
PERSON_ID = (SELECT ID FROM OTHER_TABLE WHERE PERSON_ID = 123)
现在,当person_id
中存在有效的OTHER_TABLE
时,会返回PERSON_NAME
的值。
但是当person_id
无效或不存在时,它不返回任何行。但我希望它为人名返回null。
有人可以告诉我该怎么做吗?
谢谢, 拉詹
答案 0 :(得分:2)
您想要返回一行。在这种情况下,请使用聚合函数:
SELECT MAX(PERSON_NAME)
FROM PERSON
WHERE PERSON_ID = (SELECT ID FROM OTHER_TABLE WHERE PERSON_ID = 123);
答案 1 :(得分:1)
我认为您正在寻找的是外部联接。为此,您必须在查询中进行一些更改。你可以这样做:
SELECT PERSON_NAME FROM PERSON P,OTHER_TABLE O
WHERE P.PERSON_ID(+) = O.ID AND P.PERSON_ID = 123
我希望这会有所帮助。