AS(alias)
SELECT
employee_id AS "사원번호",
first_name AS "이름",
last_name 성,
salary "기본 급여",
commission_pct 커미션퍼센티지,
salary + (salary * commission_pct) AS "1월급",
NVL( salary + ( salary * commission_pct),salary ) AS "월급2"
FROM
employees;
비교연산자
- 같다 =
- 같지않다 != <> ^=
- 크다. 작다 > <
- 같거나크다. 같거나작다 >= <=
- NULL 은 존재하지 않는 것이므로 비교대상이 될 수가 없다!
그러므로 비교연산( = != <> ^= > < >= <= )을 할 수가 없다.
그래서 비교연산을 하려면 nvl()함수, nvl2()함수를 사용하여 처리한다. (!!)
- 오라클에서 컬럼들을 붙일때(연결할때)는 문자타입이든 숫자타입이든 날짜타입이든 관계없이 || 를 쓰면 된다.
SELECT
employee_id AS 사원번호,
first_name || ' ' || last_name AS 사원명,
NVL(salary + (salary * commission_pct), salary) AS 월급,
department_id AS 부서번호
FROM
employees
WHERE
DEPARTMENT_ID = 30;
NULL 조회 : IS NULL, IS NOT NULL
- null은 is 연산자를 사용하여 구한다.
- IS NULL : NULL인 경우
- IS NOT NULL : NULL이 아닌 경우
IS NULL 사용예시
SELECT
employee_id AS 사원번호,
first_name || ' ' || last_name AS 사원명,
NVL(salary + (salary * commission_pct), salary) AS 월급,
department_id AS 부서번호
FROM
employees
WHERE
NVL(department_id, -9999) = -9999;
SELECT
employee_id AS 사원번호,
first_name || ' ' || last_name AS 사원명,
NVL(salary + (salary * commission_pct), salary) AS 월급,
department_id AS 부서번호
FROM
employees
WHERE
department_id IS NULL;
ISNOTNULL 사용예시
SELECT
employee_id AS 사원번호,
first_name || ' ' || last_name AS 사원명,
NVL(salary + (salary * commission_pct), salary) AS 월급,
department_id AS 부서번호
FROM
employees
WHERE
NVL( department_id, -9999 ) != -9999;
WHERE department_id IS NOT NULL;
WHERE NOT department_id IS NULL;
+ 문제
- employees 테이블에서 부서번호가 30번이 아닌 사원들만 사원번호, 사원명, 월급, 부서번호를 나타내세요
DESC employees;
SELECT
employee_id AS "사원번호",
first_name || ' ' || last_name AS "사원명",
NVL(salary + (salary * commission_pct), salary) AS "월급",
department_id AS "부서번호"
FROM
employees
WHERE
NVL( department_id, -9999 ) != 30;