티스토리 뷰

1. 대소문자 변환 함수

Function

Result

LOWER( 'SQL Course' )

받아들이는 인수를 소문자 변환

sql course

UPPER( 'SQL Course' )

받아들이는 인수를 대문자 변환

SQL COURSE

INITCAP( 'SQL Course' )

받아들이는 인수를 첫번째 글자 대문자로 변환

Sql Course


1
2
3
SELECT employee_id, last_name, department_id
FROM employees
WHERE last_name = 'higgins';
cs




1
2
3
SELECT employee_id, last_name, department_id
FROM employees
WHERE LOWER( last_name ) = 'higgins';
cs




2. Null 값을 실제값으로 변환해 주는 함수

NVL(Commission_pct, 0)

NVL(hire_date, '01-JAN-97')

NVL(job_id, 'No Job Yet')


인수 2개 받아들임.

첫번째 인수를 검사해서 NULL 인 경우 두번째 인수 출력(실제 값)

첫번째 인수가 NULL이 아니면 첫번째 인수 출력(실제값)


1
2
3
4
5
6
7
SELECT last_name,
       salary,
       NVL( commission_pct, ),
       ( salary*12 + ( salary*12*NVL( commission_pct, ) ) AN_SAL
FROM employees;
 
-- 1년 동안 받은 급여 + 1년 동안 받은 수량 = 연봉
cs




1
2
3
4
5
6
7
8
9
SELECT employee_id, salary, commission_pct, NVL(commission_pct, 0)
FROM employees;
 
-- 수당을 받든, 안 받든 연봉이 정상적으로 출력된다.
-- DB에는 NULL 값이 저장되어있지만
-- 디스플레이상 보기좋게 0으로 대채해서 출력한다.
 
-- 산술식에 NULL 이 들어가는 경우 NULL을 출력할 수 밖에 없다.
-- NULL 값을 일일이 0으로 다 바꿀 수 없으니 0으로 대체해서 계산한다.
cs




문제

employees 테이블로부터 전체 사원들의 커미션 평균을 구하시오.

평균 : AVG_COMM

1
2
3
4
SELECT AVG(commission_pct) AVG_COMM
FROM employees;
 
-- 커미션 받는 사원의 커미션 평균을 구한다.
cs




1
2
3
4
5
6
7
8
SELECT AVG( NVL( commission_pct, ) ) AVG_COMM
FROM employees;
 
-- 전체 사원의 커미션 평균을 구한다.
-- 사원들은 커미션을 받기도, 안받기도( NULL ) 한다.
-- 합계는 차이가 없어도 나누는 것이 다르다.
 
-- AVG : 모든 NULL 값을 무시하는 특징이 있다.
cs



 

공지사항
최근에 올라온 글
Total
Today
Yesterday