All thing of the world!

Oracle COALESCE 설명 : 오라클 함수 본문

IT/Oracle DBMS

Oracle COALESCE 설명 : 오라클 함수

WorldSeeker 2021. 3. 31. 09:21

1. 함수의 목적
  
  Oracle COALESCE는
표현식 목록에서 첫번째 Null이 아닌 expr을 리턴한다.
  
   * 여기서 잠깐 : coalesce는 하나로 합치다라는 뜻으로, 어원은 프랑스어이며, merge/unite/combine등의 동의어가 있다. 그런데 왜 이렇게 어려운 생소한 단어가 쓰였을까? 영어권에서 쉽게 많이 쓰이는 단어가 많이 있는데도 말이다. 아무리 만든 사람(오라클) 맘이지만, 조금 이해하기 힘들다. 여하간 발음도(코얼~레스) 어렵고 spelling도 어렵지만, 나름 많이 쓰인다. 많이 쓰다보면 외워진다... 굳이 외우려고 하는 분들은 coales까지만 영어발음대로 외우고 뒤에 ce는 덤으로 온다고 외우면 되겠다.
 
2. 샘플을 통한 개념 퀵뷰

select coalesce(null,null,1) from dual;

COALESCE(NULL,NULL,1)
---------------------
                    1

3. 사용방법  

4. 함수 PARAMETER 설명

[expr]
표현식을 두개 이상 지정해야한다. expr이 모두 null로 평가되면 함수는 null을 리턴한다.

5. 다양한 샘플표현

example1)  첫번째 null인 아닌 표현식의 요소를 반환한다.

select coalesce(null,1,2) from dual;

COALESCE(NULL,1,2)
------------------
                 1


example2) 숫자와 문자를 넣으면 에러가 난다.

select coalesce(null,'a',1) from dual;

select coalesce(null,'a',1) from dual
                         *
1행에 오류:
ORA-00932: 일관성 없는 데이터 유형: CHAR이(가) 필요하지만 NUMBER임


example3) 문자를 넣어도 된다.

select coalesce(null,'a','b') from dual;

CO
--
a


example4) 숫자형으로 변환이 가능한 문자와 숫자를 섞어 넣으면? 될 것같지만 안된다!

select coalesce('0','1',2) from dual;

select coalesce('0','1',2) from dual
                        *
1행에 오류:
ORA-00932: 일관성 없는 데이터 유형: CHAR이(가) 필요하지만 NUMBER임

 

 

Comments