Dla każdego pracownika wypisz imię jego szefa jeżeli (ten szef) zarabia więcej niż 3000 (lub NULL jeżeli nie ma takiego szefa).
SELECT e1.empno, e2.ename
FROM emp e1
LEFT JOIN emp e2
ON e1.mgr = e2.empno
AND e2.sal > 3000;
WHERE e2.sal > 3000
zamiast AND e2.sal > 3000
. Nie o to prosi polecenie, w szczególności polecenie wyraźnie prosi o po jednym wierszu dla każdego pracownika.CASE WHEN
:SELECT
e1.empno,
(CASE WHEN e2.sal > 3000 THEN e2.ename
ELSE NULL
END) AS mgr_ename
FROM emp e1
LEFT JOIN emp e2
ON e1.mgr = e2.empno;