Oracle 에서
nvl 함수도 있고
decode 함수도 있다.
decode 함수를 자주 쓰다보면 case when then end 함수를 쓸 때
힘들어 하는 경우가 있다.

그러니 decode도 쓰고 case when then end 함수도 번갈아 쓰는것이 좋을듯하다.

mysql 에서는
nvl 함수 대신 COALESCE 함수가 있다.
ifnull은 인자갯수가 정해져 있다면 COALESCE 는 계속 넣을수 있다.

nullif 함수는 인자 두개가 같으면 null을 그렇지 않으면 첫번째 인자를 리턴하는 함수다.

equal null else if first 의 약자로 봐야 하나.

elt 함수는 첫번째 인자가 숫자고 리턴형이 스트링이며

field 함수는 첫번째 인자는 스트링이고 리턴형은 숫자형이다.

해당사항이 없으면 null을 리턴한다.

elt는 리턴형이 스트링이므로 해당사항이 없을 경우 null을 리턴하고

field 함수는 리턴형이 해당사항없을 경우 0이 리턴된다.

case when then end 를 쓸때
비교선행자를 case와 when 사이에 두는 경우
decode와 사용 용도가 동일하며
case 와 when 사이에 공백이 있을 경우 when then 사이에 조건문이 온다.

decode(qq,'1','a','2','b');
인경우 qq의 값이 해당사항이 없으면 마지막 'b'로 설정됨에 유의 한다.

case [?] when [?] then (when then ... ) (else) end 이다.

COALESCE /쿄'[올|얼]레'(쓰)/ : 하나로되다, 합체하다., 아물어 붙다 의 뜻

case [A] when [B1] then (when [B2] then ...) (else) end 문을 이용하면

A에 값을 놓아 switch case문으로 이용 가능 하고 [A]를 비워두는 경우

B부분을 조건절로 두어 if esle문으로 이용가능하다.

[출처] Mysql 함수 COALESCE|작성자 붐업

Posted by 서오석
,