NULL 처리 함수 :
NVL : 해당 컬럼의 값이 NULL일 경우 다른 값으로 사용할 수 있도록 변화해주는 함수이다
[표현법]
NVL(컬럼, 해당 컬럼의 값이 NULL인 경우 사용할 값)
NVL 사용 예 :
SELECT EMP_NAME 사원이름, NVL(BONUS, 0) 보너스
FROM EMPLOYEE;
-- BONUS가 NULL일 경우 0으로 변화 시켜준다.
SELECT EMP_NAME 사원이름, SALARY*12 연봉 ,(SALARY +(SALARY * NVL(BONUS, 0)))* 12 "보너스 포함 연봉"
FROM EMPLOYEE;
NVL2 : 해당 컬럼의 값이 NULL일 경우 표시할 값을 지정하고
NULL이 아닐 경우(데이터가 존재하는 경우) 표시할 값을 지정
[표현법]
NVL2(컬럼, 데이터가 존재하는 경우 사용할 값, NULL인 경우 사용할 값)
SELECT EMP_NAME, NVL2(BONUS, 'O', 'X') "보너스 유무"
FROM EMPLOYEE;
O : 데이터가 있는 경우
X : 데이터가 없는 경우
SELECT EMP_NAME, NVL(DEPT_CODE, '미배정'), NVL2(DEPT_CODE, '배정완료', '미배정') "부서"
FROM EMPLOYEE;
-- NULLIF : 두 값이 일치하면 NULL, 일치하지 않는다면 비교대상1 반환
-- [표현법] NULLIF(비교대상1, 비교대상2)
SELECT NULLIF('999','999') FROM DUAL; -- 결과가 NULL
SELECT NULLIF('999','555') FROM DUAL; -- 결과가 "999"
DECODE : (비교대상(컬럼/연산식/함수식),비교값1, 결과값1, 비교값2,결과값2)
DECODE : 사용 예 :
-- 사번, 사원명, 주민번호, 성별 조회
SELECT EMP_NAME, EMP_NO, DECODE(SUBSTR(EMP_NO, 8,1), 1,'남',2,'여',3,'남',4,'여' , '알수없음')
FROM employee;
* CASE WHEN THEN : 조건식에 따라 결과값을 반환해주는 함수
[표현법]
case
WHEN 조건식1 THEN 결과값1
WHEN 조건식2 THEN 결과값2
WHEN 조건식2 THEN 결과값2
...
ELSE 결과값
END
* 그룹함수
SUM : 해당 컬럼의 값들의 총합을 반환해주는 함수
SELECT SUM(SALARY) FROM employee;
-- ''
SELECT TO_CHAR(SUM(SALARY) , 'L999,999,999') 총급여 FROM employee;
-- 남자 사원들의 총 급여
SELECT SUM(SALARY) "남자사원들의 총급여"
FROM EMPLOYEE
WHERE SUBSTR(EMP_NO, 8, 1) IN('1','3');
SELECT SUM(SALARY*12) "부서코드 D5인 사원들의 총 연봉"
FROM EMPLOYEE
WHERE DEPT_CODE = 'D5' ;
SELECT ROUND(AVG(SALARY)) "전체 사원 평균 급여"
FROM EMPLOYEE;
* MIN : 해당 컬럼의 값들 중 가장 작은 값 반환해주는 함수
* MAX : 해당 컬럼의 값들 중 가장 큰 값을 반환해주는 함수
[표현법] MIN(모든타입)
*/
SELECT MIN(EMP_NAME)"문자타입 최소값", MIN(SALARY) "숫자타입 최소값", MIN(HIRE_DATE) 날짜최소타입
FROM employee;
count : 행의 개수를 반환해주는 함수(단, 조건이 있을 경우 해당 조건에 맞는 행의 개수를 반환)
[표현법]
count(*) : 조회된 결과에 모든 행의 개수를 반환
count(컬럼) : 해당 컬럼값이 NULL이 아닌 것만 행의 갯수로 세어 반환
count(DISTINCT 컬럼) : 해당 컬럼의 값의 중복을 제거한 후 의 행의 갯수를 세어 반환
=> 중복 제거 시 NULL은 포함하지 않고 객수가 세어짐!
SELECT COUNT(*) "전체 사원 수" FROM employee;
-- 남자 사원 수 조회
SELECT COUNT(*)
FROM EMPLOYEE
WHERE SUBSTR(EMP_NO, 8, 1) IN('1','3');
'ORACLE SQL' 카테고리의 다른 글
ORACLE SQL 2회독 문제 풀이 (0) | 2024.07.25 |
---|---|
SQL 집합 연산자 , JOIN (0) | 2024.07.24 |
SQL 함수_ 형변환 (0) | 2024.07.22 |
SQL 함수_2 숫자 타입의 데이터 처리 함수 및 날짜 (0) | 2024.07.21 |
SQL 함수 모음_1 문자 관련 함수. (0) | 2024.07.20 |