Когато съм изправен пред проблема винаги да връщам точно един ред, често използвам агрегиране. Следното ще върне NULL
ако няма съвпадение:
select max(employee_id)
from employee
where name = 'John_Doe';
Следното връща 0:
select coalesce(max(employee_id), 0)
from employee
where name = 'John_Doe';