Oracle SQL 요약정리 - 함수(NULL 처리 함수,선택함수-DECODE,CASE WHEN THEN,그룹함수)
안녕하세요.
#yeoneeblog 여니입니다 :)
* NULL : 값이 존재하지 않음을 나타내는 값
NULL 처리 함수들 : NVL, NVL2, NULLIF
<NULL 처리 함수>
NVL(컬럼명, 해당컬럼값이 NULL일 경우 반환할 반환값)
해당컬럼에 값이 존재할 경우 기존의 칼럼값을 반환
칼럼에 값이 존재하지 않을경우 내가 제시한 값이 반환됨.
* NVL2(컬럼명, 결과값1, 결과값2)
해당 컬럼값이 NULL이 아닐경우 결과값1 반환
해당 컬럼값이 NULL일 경우 결과값2 반환
* NULLIF(비교대상1, 비교대상2) : 동등비교
두값이 동일할 경우 NULL반환
두값이 동일하지않을경우 비교대상1 반환
* 선택함수 : DECODE => SWICH문
CASE WHEN THEN 구문 => IF문
* 그룹함수 : 데이터들의 합(SUM), 데이터들의 평균(AVG)
: N개의 값을 읽어서 1개의 결과를 반환(하나의 그룹별로 함수 실행 결과 반환)
<선택함수>
* DECODE(비교대상, 조건값1, 결과값1, 조건값2, 결과값2, 조건값3, 결과값,... , 결과값)
- 자바의 SWITCH문과 유사
switch(비교대상){
case 조건값1 : 결과값 1 break;
case 조건값2 : 결과값 2 break;
.....
default : 결과값
}
+ 비교대상에는 컬럼, 산술연산, 함수가 들어갈수 있다.
* CASE WHEN THEN 구문
- DECODE 선택함수와 비교하면 DECODE는 해당 조건검사시 동등비교만을 수행
CASE WHEN THEN 구문의 경우 특정 조건을 내 마음대로 제시 가능
[표현법]
CASE WHEN 조건식1 THEN 결과값1
WHEN 조건식2 THEN 결과값2
WHEN 조건식3 THEN 결과값3
...
ELSE 결과값
END;
<그룹함수>
- 데이터들의 합(SUM), 데이터들의 평균(AVG)
: N개의 값을 읽어서 1개의 결과를 반환(하나의 그룹별로 함수 실행 결과 반환)
1. SUM(숫자타입컬럼) : 해당 칼럼값들의 총 합계를 반환해주는 함수
2. AVG(숫자타입컬럼) : 해당칼럼값들의 평균을 구해서 반환
3. MIN(ANY타입) : 해당 칼럼값들중 가장 작은값을 반환
4. MAX(ANY타입컬럼) : 해당칼럼값들중 가장 큰값을 반환
5. COUNT(*/컬럼이름/DISTINCT 컬럼이름) 조회된 행의 갯수를 세서 반환
- COUNT(*) : 조회결과에 해당하는 모든 행의 갯수를 다 세서 반환
- COUNT(칼럼이름) : 제시한 해당칼럼의 값이 NULL이 아닌 것만 세서 반환
- COUNT(DISTINCT 컬럼이름) : 제시한 해당 칼럼값이 중복값이 있을경우 하나로만 세서 반환
★회사에서 자주 사용 - 게시글 목록 페이지(최하단의 1,2,3... 페이지당 게시글 갯수고
몇개가 몇개가 노출될지 만들때 사용(COUNT(*))★★★