Oracle 논리 연산자 OR

Oracle DB

논리 연산자 OR

복수의 조건식의 논리합산 연산자. 복수의 조건식 중 하나만이라도 해당할 경우, TRUE를 반환합니다. 다시 말해 WHERE구에 들어가는 조건을 2개 이상 가졌으며, 둘 중 하나의 조건식만 만족해도 결과로 출력하는 SQL문입니다.

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

눈깨비 정보창고 - 분기탱천
마우스 영역 지정 이미지 캡처를 문자 인식 및 번역하기 버튼 클릭 만으로  을 실행 해 주는 소프트웨어를 작성 했습니다. 자세한 도움말은 여기를 참조 하십시오. 웹 서비스 구축 눈깨비가 본업으로 하고 있는 기술적인 ...

예시1

두 개의 조건식을 가진 SQL문입니다. 테이블 emp의 컬럼 sal의 값이 800이거나 comm의 값이 500인 레코드를 출력합니다.

COLUMN empno FORMAT 99999;
COLUMN ename FORMAT A6;
COLUMN sal FORMAT 9999;
COLUMN comm FORMAT 9999;
SELECT empno, ename, sal, comm FROM emp
WHERE sal = 800 OR comm = 500;

실행 결과는 다음과 같습니다. 논리연산자 OR가 사용되었기 때문에 sal이 800이지만 comm이 500이 아닌 레코드, comm이 500이지만 sal이 800이 아닌 레코드가 모두 출력됩니다.

 EMPNO ENAME    SAL  COMM
------ ------ ----- -----
  7369 SMITH    800
  7521 WARD    1250   500

예시2

비교연산자 BETWEEN, IN, LIKE, IS NULL 조건을 모두 만족하는 데이터를 검색하는 SQL문입니다. 테이블 emp의 컬럼 empno, ename, comm, mgr에 대한 조건식이 정의되어있습니다.

COLUMN empno FORMAT 99999;
COLUMN ename FORMAT A6;
COLUMN comm FORMAT 9999;
COLUMN mgr FORMAT 9999;
SELECT empno, ename, mgr, comm FROM emp
WHERE empno BETWEEN 7300 AND 7500
OR comm IN(300, 1400)
OR ename LIKE '%N'
OR mgr IS NULL;

실행 결과는 다음과 같습니다. emno가 7300 이상 7500 이하인 레코드, comm이 300 혹은 1400인 레코드, ename에 N이 포함된 레코드, mgr이 null인 레코드들이 모두 결과값으로 검색되어 총 4건이 출력되었습니다. WHERE문에 명시된 조건 전체를 만족하지 않는 레코드도 결과값이 됨을 알 수 있습니다.

 EMPNO ENAME    MGR  COMM
------ ------ ----- -----
  7369 SMITH   7902
  7499 ALLEN   7698   300
  7654 MARTIN  7698  1400
  7839 KING
제목과 URL을 복사했습니다