26.01.2015 Views

Materiały pomocnicze do PL/SQL

Materiały pomocnicze do PL/SQL

Materiały pomocnicze do PL/SQL

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

to były zapytania zwracające pojedyńczą wartość, można również używać podzapytań zwracających grupę<br />

wartości:<br />

• znajdź pracowników o najniższych pensjach w poszczególnych działach<br />

select<br />

ename, sal, deptno<br />

from<br />

emp<br />

where sal in ( select min(sal)<br />

from emp<br />

group by deptno);<br />

ENAME SAL DEPTNO<br />

--------- ------- ------------<br />

SMITH 800 20<br />

JAMES 950 30<br />

MILLER 1300 10<br />

ponieważ wewnętrzne zapytanie używa group by zwróci więcej niż jedną wartość - dlatego musimy użyć<br />

in w warunku. Może się również zdażyć, że pracownik z działu x zostanie wyselekcjonowany ponieważ<br />

jego pensja będzie równa minimum z działu y. Aby tego umiknąć możemy użyć selectu postaci:<br />

select ename, sal, deptno<br />

from emp<br />

where (sal,deptno) in ( select min(sal), deptno<br />

from emp<br />

group by deptno);<br />

ENAME SAL DEPTNO<br />

--------- ------- ------------<br />

SMITH 800 20<br />

JAMES 950 30<br />

MILLER 1300 10<br />

konieczna zgodność kolejności, ilości i typów kolumn w where i podzapytaniu. Sygnalizowane są błędy<br />

jeżeli podzapytanie zwróci więcej niż jeden rekord a nie używamy operatorów 'grupowych' oraz wtedy<br />

kiedy podzapytanie nie wybieże żadnego wiersza.<br />

Materiały <strong>do</strong> kursów Oracle 7: <strong>PL</strong>/<strong>SQL</strong>, str. 20

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!