728x90
IS NULL
비교대상컬럼 IS NULL -- 컬럼값이 NULL인 경우
비교대상컬럼 IS NOT NULL -- 컬럼값이 NULL이 아닌 경우
-- 보너스를 받지 않는 사원들(BONUS 컬럼값이 NULL)의 사번, 이름, 급여, 보너스
SELECT EMP_ID, EMP_NAME, SALARY, BONUS
FROM EMPLOYEE
WHERE BONUS IS NULL;
-- 보너스를 받는 사원들(BONUS 컬럼값이 NULL)의 사번, 이름, 급여, 보너스
SELECT EMP_ID, EMP_NAME, SALARY, BONUS
FROM EMPLOYEE
WHERE BONUS IS NOT NULL;
-- 사수가 없는 사원들의 사원명, 사원번호, 사수사번(NULL), 부서코드 조회
SELECT EMP_NAME, EMP_ID, MANAGER_ID, DEPT_CODE
FROM EMPLOYEE
WHERE MANAGER_ID IS NULL;
-- 사수도 없고, 부서배치도 받지 않은 사원들의 모든 컬럼 조회
SELECT *
FROM EMPLOYEE
WHERE MANAGER_ID IS NULL AND DEPT_CODE IS NULL;
-- 부서배치는 받지 않았지만, 보너스는 받는 사원의 사원명, 보너스, 부서코드 조회
SELECT EMP_NAME, BONUS, DEPT_CODE
FROM EMPLOYEE
WHERE DEPT_CODE IS NULL AND BONUS IS NOT NULL;
728x90
IN
비교대상컬럼 값에 내가 제시한 목록들 중 일치하는 값이 있는지?
비교대상컬럼 IN (값, 값, 값, ...)
-- 부서코드가 D6이거나 D8이거나 D5인 사원들의 이름, 부서코드, 급여
SELECT EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
-- WHERE DEPT_CODE = 'D6' OR DEPT_CODE = 'D8' OR DEPT_CODE = 'D5';
WHERE DEPT_CODE IN ('D6', 'D8', 'D5');
-- 그외 사원들
SELECT EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE DEPT_CODE NOT IN ('D6', 'D8', 'D5');
연결 연산자 ( || )
여러 컬럼값들을 마치 하나의 컬럼인 것처럼 연결시켜주는 연산자로
컬럼과 리터럴(임의의 문자열)을 연결할 수 있다.
SELECT EMP_ID || EMP_NAME || SALARY AS "연결됨"
FROM EMPLOYEE;
ORDER BY 절
SELECT문 가장 마지막에 기입하는 구문으로 실행순서 또한 가장 마지막
SELECT 조회할 컬럼, 컬럼, ...
FROM 테이블명
WHERE 조건식 --생략가능
ORDER BY [정렬할 컬럼/별칭/컬럼순번] [ASC/DESC]
[NULLS FIRST / NULLS LAST] --생략가능
/*
ASC : 오름차순 정렬(생략시 기본값), 기본적으로 NULLS LAST
DESC : 내림차순 정렬, 기본적으로 NULLS FIRST
NULLS FIRST : NULL이 포함되어 있을 경우 앞으로 배치(내림차순시 기본값)
NULLS LAST : NULL 이 포함되어 있을 경우 뒤로 배치(오름차순시 기본값)
*/
연산자 우선순위
1. ( )
2. 산술연산자
3. 연결연산자
4. 비교연산자
5. IS NULL, LIKE, IN
6. BETWEEN AND
7. NOT
8. AND
9. OR
728x90
'Programming > SQL' 카테고리의 다른 글
[Oracle] SELECT문 함수(2) - 이메일 ID만 조회, 주민등록번호 마스킹 처리 조회 / LPAD / RPAD (0) | 2024.01.18 |
---|---|
[Oracle] SELECT문 함수(1) - LENGTH / LENGTHB / INSTR / SUBSTR (0) | 2024.01.18 |
[Oracle] SELECT문 기본문법(3) - 논리연산자(AND, OR) / BETWEEN AND / LIKE (0) | 2024.01.17 |
[Oracle] SELECT문 기본문법(2) - DISTINCT / WHERE절 / 비교연산자 (0) | 2024.01.17 |
[Oracle] SELECT문 기본문법(1) - 산술연산 / 별칭(AS) / 컬럼값을 통한 산술 연산 / SYSDATE 오늘날짜 / 리터럴 (0) | 2024.01.17 |