Oracle 논리 연산자 AND

Oracle DB

논리 연산자 AND

복수의 조건식의 논리곱 연산자. 복수의 조건식에 모두 해당될 경우, TRUE를 반환합니다. 다시 말해 WHERE구에 들어가는 조건을 2개 이상 가진 SQL문입니다.

이 글의 예시는 아래 글의 초기 데이터를 사용했습니다.

Oracle 일반 데이터베이스 인스턴스에 연습 데이터용 샘플 스키마 "SCOTT" 작성하기
"SCOTT" 스키마가 디폴트로 설치된 마지막 오라클 버전은 11g(11.2.0.x) 입니다. 11g 버전 이후 Oracle 12c(12.1.0.2) 버전부터 "SCOTT" 스키마는 기본적으로 설치되지 않도록 변경되...

예시1

두 개의 조건식을 가진 SQL문입니다. 테이블 emp의 컬럼 job의 값이 ‘SALESMAN’이인 동시에 comm의 값이 300인 데이터를 출력합니다.

COLUMN empno FORMAT 99999;
COLUMN ename FORMAT A6;
COLUMN comm FORMAT 9999;
SELECT empno, ename, job, comm FROM emp
WHERE job = 'SALESMAN' AND comm = 300;

실행 결과는 다음과 같습니다. job이 SALESMAN이며 comm이 300인 데이터 1건이 출력되었습니다. 어느 한 쪽의 조건을 만족시키더라도 다른 하나의 조건을 만족시키지 못했을 경우에는 결과로써 검색되지 않습니다.

 EMPNO ENAME  JOB        COMM
------ ------ --------- -----
  7499 ALLEN  SALESMAN    300

예시2

비교연산자 BETWEEN, IN, LIKE, IS NULL 조건을 모두 만족하는 데이터를 검색하는 SQL문입니다.

COLUMN empno FORMAT 99999;
COLUMN ename FORMAT A6;
COLUMN sal FORMAT 9999;
COLUMN comm FORMAT 9999;
COLUMN deptno FORMAT 999999;
SELECT empno, ename, sal, comm, deptno FROM emp
WHERE sal BETWEEN 950 AND 3000
AND deptno IN(20, 30)
AND ename LIKE '%N%'
AND comm IS NULL;

실행 결과는 다음과 같습니다. sal이 950 이상 3000 이하의 값이며, deptno가 20 혹은 30이며, ename에 N이 포함되어있으며, comm이 null인 데이터 1건이 출력되었습니다.

 EMPNO ENAME    SAL  COMM  DEPTNO
------ ------ ----- ----- -------
  7566 JONES   2975            20
제목과 URL을 복사했습니다