Wenn ich vor dem Problem stehe, immer genau eine Zeile zurückzugeben, nutze ich oft Aggregation. Folgendes gibt NULL
zurück wenn es keine Übereinstimmung gibt:
select max(employee_id)
from employee
where name = 'John_Doe';
Folgendes gibt 0 zurück:
select coalesce(max(employee_id), 0)
from employee
where name = 'John_Doe';