Это только правильно с НЕ СУЩЕСТВУЮЩИМ
SELECT D.DNAME
FROM DEPT D
WHERE
NOT EXISTS (SELECT * FROM EMP E WHERE D.DEPTNO = E.DEPTNO)
или ИСКЛЮЧИТЬ, более сложным в этом случае
SELECT D.DNAME
FROM DEPT D
EXCEPT
SELECT D.DNAME
FROM DEPT D
JOIN
EMP E WHERE D.DEPTNO = E.DEPTNO
Оба должны дать один и тот же план (сleft anti semi join)
Примечания к другим ответам:
СЛЕДУЮЩЕЕ СОЕДИНЕНИЕ даст одну строку на сотрудника.Тебе нужен DISTINCT.Что ставит под угрозу план по сравнению с NOT EXISTS
NOT IN даст неверные результаты, если есть сотрудник, у которого нет отдела.Сбой NOT IN с NULL в списке
Так что обычно следует использовать NOT EXISTS или EXCEPT