[ Oracle ] null 함수 (nvl 함수), decode 함수

2021. 3. 15. 15:53·Archive/Develop
728x90
반응형

 

 

nvl 함수

nvl 예제

 

 

문제 : emp 테이블에서 sal * comm 값이 100000보다 작은 사원만

empno, ename,sal, comm, sal*comm 을 출력하라.

 

 

comm 값이 null 값인 경우가 있다면, where 절을 어떻게써야할지 애매할 때가 있다.

 

 

 

select empno, ename, sal, comm, rpad(to_char(sal*comm,'999,999,999'),12) as 지급금액
from emp
where sal*nvl(comm,0) <1000000;

 

 

nvl(comm,0) 이 뜻하는 바는, comm 의 값이 null 이라면 0으로 치환한다는 의미이다.

 

 

 

 

 

문제 : emp 에서 comm 값이 null 인 경우는 '해당 없음' 으로,

아니라면 원래 값이 출력되도록 empno, ename,sal, comm 을 출력하라.

 

 

select empno, ename, sal, lpad(nvl(to_char(comm),'해당 없음'),10)
from emp;

 

 

to_char 를 이용해서 comm 을 문자형으로 바꿔야 에러가 나지 않는다.

 

decode 함수

 

위 예제를 decode 함수를 이용해서 풀 수도 있다.

 

 

select empno, ename, sal, 
decode(comm,null,'해당없음')
from emp;

 

 

decode 함수를 사용하면, 굳이 형변환을 하지 않아도 '해당 없음' 을 출력해낼 수 있다.

 

 decode 함수는 다른 프로그래밍 언어의 삼항연산자와 비슷한 느낌이다.

 

decode(comm,null,'해당없음') 의 의미는 아래와 같다.

 

comm 의 값이 널이면 '해당 없음'

 

 

 

 

 

switch-case 문과도 비슷한 느낌을 얻을 수 있다.

728x90
반응형

'Archive > Develop' 카테고리의 다른 글

[ Oracle ] Oracle sql case 문 예제  (0) 2021.03.15
[ CodeUp ] Python 기초 100제 | 6056 번 풀이  (0) 2021.03.15
[ Oracle ] 휴지통 확인하고 비우기  (0) 2021.03.15
[ Oracle ] to_char를 이용해 숫자 사이의 컴마찍기 / 원화 출력하기  (0) 2021.03.15
[ Oracle ] 제약조건 확인하기 (조인 사용)  (0) 2021.03.15
'Archive/Develop' 카테고리의 다른 글
  • [ Oracle ] Oracle sql case 문 예제
  • [ CodeUp ] Python 기초 100제 | 6056 번 풀이
  • [ Oracle ] 휴지통 확인하고 비우기
  • [ Oracle ] to_char를 이용해 숫자 사이의 컴마찍기 / 원화 출력하기
코뮤(commu)
코뮤(commu)
코딩으로 커뮤니케이션하는 코뮤입니다 😎
  • 코뮤(commu)
    코뮤(COMMU)
    코뮤(commu)
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Archive
        • Hacking
        • Develop
        • ETC
      • Algorithm
      • DB&Infra
      • ETC
      • Node
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • IT지식보따리
    • IT가 맛있다
    • IT 천재
  • 공지사항

    • 배고픕니다
  • 인기 글

  • 태그

    코드업
    파이썬 백준
    Python
    파이썬 알고리즘
    백준 문제풀이
    Codeup
    C++
    파이썬 기초
    장고
    Git
    파이썬
    자바스크립트
    oracle db
    백준 풀이
    docker
    비박스
    Django
    파이썬 문제
    파이썬 기초 문제
    자바스크립트 객체
    보안뉴스
    Oracle
    카카오 100일 프로젝트
    백준
    코드업 기초
    javascript
    코드업 파이썬 기초 100제
    백준 파이썬
    자바스크립트 API
    오라클
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코뮤(commu)
[ Oracle ] null 함수 (nvl 함수), decode 함수
상단으로

티스토리툴바