Part 3. 함수 2

Hyunsu·2023년 3월 12일
0

국비 교육

목록 보기
25/36
post-thumbnail

모든 함수를 외우지는 말고 필요한 함수를 그 때 그 때 찾아서 사용하면 된다.
자주 사용되는 함수들은 외울 수 있도록 한다.

📝 목차

  1. 형 변환 함수
  2. NULL 처리 함수
  3. 선택 함수
  4. 그룹 함수

1. 형 변환 함수

다음은 형 변환 함수를 정리해 놓은 것이다. 주의 사항은 날짜는 숫자로 변환할 수 없다.

📌 TO_CHAR

문자열로 변환하며 변환 시 포맷 형식을 지정해줘야 한다.

포맷에 포함되지 않는 글자는 쌍따옴표 내부에 작성해야 한다. 예를 들어 한글은 포맷에 포함되지 않으므로 쌍따옴표 내부에 작성하고 괄호는 포맷에 포함되므로 쌍따옴표를 작성하지 않아도 된다.

숫자를 문자열로 바꿀 때 칸 수가 충분하지 않으면 # 으로 채워진다.

다음은 포맷 형식이다.

📌 TO_DATE

지정된 포맷의 날짜 형식으로 해석하여 날짜형 데이터로 변환한다.

날짜 패턴 Y 와 R 의 차이점 역시 중요하므로 기억해둬야 한다.

-- 년도를 짧게 해석하는 경우
-- 50 미만 : 둘 다 앞부분에 현재 세기 (21C == 2000년대) 적용
-- 50 이상 : Y == 현재 세기 (2000년대) R == 이전 세기 (1900년대)

-- 1949-01-15
-- 1950-01-15
SELECT TO_DATE('490115', 'YYMMDD'), -- 2049-01-15 00:00:00
	   TO_DATE('490115', 'RRMMDD'), -- 2049-01-15 00:00:00

	   TO_DATE('500115', 'YYMMDD'), -- 2050-01-15 00:00:00
	   TO_DATE('500115', 'RRMMDD') -- 1950-01-15 00:00:00
FROM DUAL;

📌 TO_NUMBER

문자형 데이터를 숫자형 데이터로 변환하여 반환한다.

SELECT TO_NUMBER('1,000,000', '99,999,999') - TO_NUMBER('550,000', '999,999')
FROM DUAL; -- 450000 출력

2. NULL 처리 함수

NULL 값이 있으면 지정한 숫자나 문자로 변경하여 반환한다.

NVL 2 함수 NVL2 (컬럼명, NULL 아닌 경우 값, NULL 인 경우 값) 는 다음과 같이 사용될 수 있다.

-- 기존에 보너스를 받았던 사원은 기존 보너스에 0.2 추가
SELECT EMP_NAME, BONUS, NVL2(BONUS, BONUS + 0.2, 0.3) "변경된 BONUS"
FROM EMPLOYEE;

3. 선택 함수

여러 가지 경우에 따라 알맞은 결과를 선택하는 함수로 if 문 또는 switch 문과 비슷하다.

📌 DECODE

DECODE 는 계산식 또는 컬럼값이 딱 떨어지는 경우에만 사용 가능하다.

📌 CASE

CASE 는 계산식 또는 컬럼값을 범위로 정할 수 있다.


4. 그룹 함수

그룹 함수는 하나의 행으로 결과가 출력된다.

📌 SUM

컬럼 값들의 합계를 반환한다.

📌 AVG

컬럼 값들의 평균을 반환한다.

📌 MAX / MIN

타입에 제한이 없다. 숫자는 대소를 비교하며 문자는 문자 순서를 비교한다.
날짜는 과거와 미래를 비교하는데 미래로 갈수록 숫자가 커진다는 점을 기억해야 한다.

📌 COUNT

COUNT(*) 은 NULL 을 포함한 모든 행의 개수를 반환한다.

COUNT(컬럼명) 은 NULL 을 제외한 행의 개수를 반환한다.

COUNT(DISTINCT 컬럼명) 은 중복된 값을 제외한 행의 개수를 반환한다.

profile
현수의 개발 저장소

0개의 댓글