Wybierz imiona, pensje i stanowisko wszystkich pracowników którzy: albo mają imię zaczynające się na literę T i zarabiają więcej niż 1500 i mniej niż 2000, albo są analitykami.
SELECT e.ename, e.sal, e.job
FROM emp e
WHERE (e.ename LIKE 'T%' AND e.sal > 1500 AND e.sal < 2000)
OR e.job = 'ANALYST'
Część pominęła nawiasy wokół pierwszej składowej OR
a. Można tak zrobić, bo AND ma większe precedence, ale jest to dość nieczytelne i wymaga od czytającego sprawdzenia jaki konkretnie jest ten precedence. Dlatego bardziej elegancko postawić nawiasy. Swoją drogą tyczy się to wszystkich języków programowania, nie tylko SQLa.
Z drugiej strony część z was postawiła nawiasy wszędzie gdzie się dało
((e.ename LIKE 'T%') AND ((e.sal > 1500) AND (e.sal < 2000))) OR (e.job = 'ANALYST')
bez przesady, nawiasy wokół pojedynczego porównania są zbędne.
Na labach rzuciłem, że ten warunek z sal
można też zapisać jako e.sal BETWEEN 1501 AND 1999
. Jest to technicznie prawda, ale mówiąc to nie pomyślałem, że przecież ktoś kiedyś może zarabiać np. 1999.50
i wtedy to zapytanie się wysypuje. Także jakby przyszło wam kiedyś pisać SQL-a na produkcję to lepiej tak nie kombinować.