Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Semestr2 / 1 - Oracle / 6-subqueries.ppt
Скачиваний:
20
Добавлен:
12.05.2015
Размер:
150 Кб
Скачать
☆

What IsIs Wrong

 

 

 

withi Thisis Statement?ry

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q

 

 

 

 

SQL> SELECT empno, ename

 

 

 

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

u

 

 

 

 

 

 

2

FROM

emp

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

s

 

 

 

 

 

 

 

3

WHERE

sal =

 

 

 

 

 

 

 

 

 

 

ow

 

 

 

 

 

 

 

4

 

 

 

 

 

(SELECT

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MIN(sal)-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

 

 

 

 

 

5

 

 

 

 

 

FROM

 

 

 

l

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

pemp

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

l

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

u

deptno);

 

 

 

 

 

 

 

 

 

 

 

GROUP BY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ERROR:

 

 

 

 

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ORA-01427: single-rowasubquery returns more than

 

 

 

 

 

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

one row

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

no rows selectedro

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

l

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6-12

Willill Thisis Statement Work?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SQL> SELECT ename, job

 

 

 

 

 

 

 

 

 

2

FROM

emp

 

 

 

 

 

 

 

 

 

 

 

 

3

WHERE

job =

 

 

 

 

 

 

 

 

 

s

 

 

4

 

(SELECT job

 

 

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

u

 

 

 

 

 

 

 

 

 

 

 

 

 

l

 

 

5

 

FROM

 

 

emp

a

 

 

 

 

 

v

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

WHERE

 

 

 

 

o

 

 

 

 

 

ename='SMYTHE');

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

s

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

u

 

 

 

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

no rows selected

 

 

 

 

 

e

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

 

 

 

 

 

 

 

 

 

 

 

 

 

u

 

 

 

 

 

 

 

 

 

 

 

 

q

 

 

 

 

 

 

 

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

u

 

 

 

 

 

 

 

 

 

 

 

 

 

S

 

 

 

 

 

 

 

 

 

 

 

6-13

Multiplel i le-Row Subqueriesi

•• Returnt rn morere thant one rowr

•• Use multiplelti le--rowr comparisonri operatorsr t rs

Operator

 

Meaning

IN

 

Equal to any member in the list

 

 

 

ANY

 

Compare value to each value returned by

 

 

the subquery

 

 

 

ALL

 

Compare value to every value returned by

 

the subquery

 

 

 

 

 

6-14

Usingi ANY Operator inin Multiplel i le-Row Subqueriesi

SQL>

SELECT

empno, ename, job 1300

 

2

FROM

emp

 

1100

 

 

800

 

3

WHERE

sal < ANY

950

 

4

 

 

 

(SELECT

sal

5

 

 

 

FROM

emp

6

 

 

 

WHERE

job = 'CLERK')

7

AND

job <> 'CLERK';

 

 

EMPNO ENAME

JOB

 

--------- ----------

---------

 

 

7654 MARTIN

SALESMAN

 

 

7521 WARD

SALESMAN

 

6-15

Usingi ALL Operator inin Multiplel i le-Row Subqueriesi

SQL>

SELECT

empno, ename, job 1566.6667

2

FROM

emp

 

2175

 

3

WHERE

sal > ALL

2916.6667

 

 

 

4

 

 

(SELECT

avg(sal)

5

 

 

FROM

 

emp

6

 

 

GROUP BY

deptno);

 

 

 

 

 

 

EMPNO

ENAME

JOB

 

 

---------

----------

---------

 

 

7839

KING

PRESIDENT

 

 

7566

JONES

MANAGER

 

 

7902

FORD

ANALYST

 

 

7788

SCOTT

ANALYST

 

 

 

 

 

 

6-16

Summary

Subqueries are useful when a query is based on unknown values.

 

 

 

 

 

 

SELECT

select_list

 

 

 

FROM

table

 

 

 

WHERE

expr operator

 

 

 

 

(SELECT select_list

 

 

 

FROM

table);

 

 

 

 

 

 

6-17

Practicei Overviewi

•Creating subqueries to query values based on unknown criteria

•Creating subqueries to query values based on unknown criteria

•Using subqueries to find out what values exist in one set of data and not in another

•Using subqueries to find out what values exist in one set of data and not in another

6-18

Соседние файлы в папке 1 - Oracle