함수 NULL 주의

AVG는 NULL이 들어있는 행은 '없다 치고' 계산함. 성과급을 받는 직원과 안 받는 직원이 한데 있는 회사에서 '성과급 평균 알려줘' 라고 하면 성과급 받는 직원들의 성과급평균을 알려주는 셈. 

전 직원의 평균을 알고 싶다면 NULL값을 0으로 치환하는 NVL 함수를 사용하여 계산식에 참여하도록 해야 함 

 

COUNT를 할 때도 NULL이 들어있는 행은 안 셈. 근데 COUNT(*)를 하면 다 셈. 지금 COMM 컬럼에 10행이 NULL이기 때문에 4개만 세는 것.

 

중복 값을 제거하고 세고 싶다면 DISTINCT를 사용할 수 있음 

 

NVL (컬럼, 'A'): NULL이면 A로 바꿔줘

NVL2 (컬럼, 'A', 'B') : NULL이면 A로, NULL 아니면 B로 바꿔줘 

NULLIF : 두 인수의 결과가 같으면 널을 리턴하고, 같지 않으면 첫번째 인수값을 리턴함

COALESCE (컬럼, 컬럼2, 컬럼3, 컬럼4, 'A') 얘가 널이야? 그럼 다음거, 걔도 널이야? 그럼 다음거...

 

'근거 있는 일하기_SQL' 카테고리의 다른 글

HAVING  (0) 2024.04.19
GROUP BY  (0) 2024.04.19
ORACLE DB 함수 (5. 일반 함수)  (0) 2024.04.15
ORACLE DB 함수 (4. 형 변환 함수)  (0) 2024.04.15
ORACLE DB 함수 (3. 날짜 함수)  (0) 2024.04.14