포스팅 목차
오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크
o COALESCE
문법
coalesce::=
목적
COALESCE 함수는 나열된 인수의 값을 순차적으로 체크하여 NULL이 아닌 첫 번째 인수를 반환한다.
모든 인수가 NULL인 경우에는 NULL을 반환한다.
만약 expr 전체가 수치 데이터형이거나 암묵적으로 수치 데이터 형으로 변환 가능한 수치 외의 데이터형이라면, 오라클 데이터 베이스는 가장 높은 수치 순위를 결정하여 나머지 인수를 암묵적으로 그 데이터형으로 변환하고, 그 데이터 형을 반환한다.
이 함수는 NVL함수의 일반화된 것이다.
COALSESCE함수는 CASE 식의 표현으로 사용할 수 있다. 예를 들어,
COALESCE (expr1, expr2)
는 아래와 같다.
CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END
는 동일하게,
COALESCE (expr1, expr2, ..., exprn), for n>=3
또한, 이 방식은 아래와 동일하게 처리할 수 있다.
CASE WHEN expr1 IS NOT NULL THEN expr1
ELSE COALESCE (expr2, ..., exprn) END
참 조 : NVL and "CASE Expressions " |
패키지 함수 비교 - Oracle, Pandas, R Prog, Dplyr, Sqldf, Pandasql, Data.Table
관련 함수
함수명 | 함수내용 |
COALESCE | 나열된 인수의 값을 순차적으로 체크하여 NULL이 아닌 첫 번째 인수를 반환한다. |
LNNVL | 조건문의 한쪽 또는 양쪽의 피연산자가 NULL이 존재하는 관측치를 포함하여 조건문을 평가하기 위한 방법을 제공한다. |
NANVL |
만약 n2가 NaN이 아니라면, 오라클은 n2를 반환한다. 만약 입력 값 n2가 Nan(숫치가 아닌)인 경우에 대체 값 n1을 반환하도록 오라클에 지시한다. |
NULLIF |
expr1과 expr2를 비교하는 비교 함수이다. 만약 expr1과 expr2가 같으면 NULL값을 반환하고, expr1과 expr2가 서로 동일하지 않으면 expr1을 반환한다. |
NVL | 쿼리의 결과에서 NULL(공백으로 반환) 값을 치환하는 함수이다. 만약 expr1이 NULL이면 expr2를 반환하고, 만약 expr1이 NULL이 아니면 expr1을 반환한다. |
NVL2 | NVL2함수를 사용하면, 지정한 표현이 NULL인지 여부에 근거하여 쿼리의 반환될 값을 분기하여 처리할 수 있다. |
예제
다음 예제는 oe.prodct_information 테이블을 이용하여, 상품의 재고 판매를 기획한다. 10% 할인 판매를 한다. 만약 표시 가격이 없다면, 세일 가격은 최소 가격이 된다. 만약 최소 가격이 없다면, 세일 가격은 5이다.
Oracle Program |
SELECT product_id, list_price, min_price,
COALESCE(0.9*list_price, min_price, 5) "Sale"
FROM product_information
WHERE supplier_id = 102050;
Results |
PRODUCT_ID LIST_PRICE MIN_PRICE Sale
---------- ---------- ---------- ----------
2382 850 731 765
3355 5
1770 73 73
2378 305 247 274.5
1769 48 43.2
--------------------------------------------
오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크 |
[SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크 |
반응형
'오라클 게시판 > 오라클 함수' 카테고리의 다른 글
[오라클함수] COMPOSE 함수 (0) | 2018.11.13 |
---|---|
【오라클(Oracle) SQL 함수】 COLLECT 함수 (0) | 2018.11.13 |
[오라클 함수] CHR 함수 (0) | 2018.11.13 |
【오라클(Oracle) SQL 함수】 CHARTOROWID 함수 (0) | 2018.11.12 |
【오라클(Oracle) SQL 함수】 CEIL 함수 (0) | 2018.11.12 |
댓글