용어 뜻:
출처:
Exists, All, Some, Any는 다중행 서브쿼리에서 사용한다.
서브쿼리에서 반환되는 결과 행이 하나 이상일 때 사용한다.
메인 쿼리의 WHERE 절에서 서브쿼리의 결과와 비교할 경우에는 다중행 비교 연산자를 사용해서 비교한다.
다중행 비교 연산자: IN, ANY, SOME, ALL, EXISTS
다중행 비교 연산자는 단일 행 비교 연산자와 결합하여 사용 가능하다.
IN: 메인 쿼리의 비교 조건이 서브쿼리의 결과중에서 하나라도 일치하는 참이다.
'=' 비교만 가능하다.
ANY/SOME: 메인 쿼리의 비교 조건이 서브쿼리의 결과중에서 하나라도 일치하면 참이다.
'=' 비교만 가능하다.
ALL: 메인 쿼리의 비교 조건이 서브쿼리의 결과중에서 모든값이 일치하면 참이다.
EXISTS: 메인 쿼리의 비교 조건이 서브쿼리의 결과중에서 만족하는 값이 하나라도 존재하면 참이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
SQL> select ename, job, sal from emp;
ENAME JOB SAL
---------- --------- ---------
SMITH CLERK 800
ALLEN SALESMAN 1600
WARD SALESMAN 1250
JONES MANAGER 2975
MARTIN SALESMAN 1250
BLAKE MANAGER 2850
CLARK MANAGER 2450
SCOTT ANALYST 3000
KING PRESIDENT 5000
TURNER SALESMAN 1500
ADAMS CLERK 1100
JAMES CLERK 950
FORD ANALYST 3000
MILLER CLERK 1300
14 rows selected.
SQL> select ename, sal
from emp
where sal > any(1500, 2900);
ENAME SAL
---------- ---------
ALLEN 1600
JONES 2975
BLAKE 2850
CLARK 2450
SCOTT 3000
KING 5000
FORD 3000
7 rows selected.
위 any 예문과 결과가 같다.
SQL> select ename, sal
from emp
where sal > 1500
or sal > 2900;
ENAME SAL
---------- ---------
ALLEN 1600
JONES 2975
BLAKE 2850
CLARK 2450
SCOTT 3000
KING 5000
FORD 3000
7 rows selected.
SQL> select ename, sal
from emp
where sal > all(1500, 2900);
ENAME SAL
---------- ---------
JONES 2975
SCOTT 3000
KING 5000
FORD 3000
4 rows selected.
아래는 위 예문 all 과 결과가 같다.
SQL> select ename, sal
from emp
where sal > 1500
and sal > 2900;
ENAME SAL
---------- ---------
JONES 2975
SCOTT 3000
KING 5000
FORD 3000
4 rows selected.
SQL> select ename from emp
where substr(ename, 1, 1) = any ('A', 'J');
ENAME
----------
ALLEN
JONES
ADAMS
JAMES
4 rows selected.
아래는 some 예문으로 any와 결과가 같다.
SQL> select ename from emp
where substr(ename, 1, 1) = some ('A', 'J');
ENAME
----------
ALLEN
JONES
ADAMS
JAMES
4 rows selected.
| cs |
ORACLEJAVA Community, 2016-10-27, http://www.oraclejavanew.kr/bbs/board.php?bo_table=LecSQLnPlSql&wr_id=191
댓글
댓글 쓰기