Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 파이썬
- 카카오프로젝트100
- 자바스크립트 기본 문법
- 깃허브
- php
- 자바스크립트
- 자바스크립트 객체
- 자바스크립트 jQuery
- 보안뉴스 요약
- numpy
- 다크웹
- 카카오프로젝트 100
- 자바스크립트 node
- 자바스크립트 API
- javascript
- oracle db
- 자바스크립트 element api
- 보안뉴스한줄요약
- 자바스크립트 prototype
- ES6
- python
- 보안뉴스요약
- 보안뉴스 한줄요약
- 보안뉴스
- 오라클
- oracle
- Oracle SQL
- 랜섬웨어
- GIT
- 카카오프로젝트
Archives
- Today
- Total
FU11M00N
[ Oracle ] null 함수 (nvl 함수), decode 함수 본문
저번 글 테이블값과 이어집니다.
- 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 의 값이 널이면 '해당 없음' 입니다.
'Programming > Oracle SQL' 카테고리의 다른 글
[ Oracle ] Oracle CTAS 기법으로 테이블 복사하기 (0) | 2021.03.15 |
---|---|
[ Oracle ] Oracle sql case 문 예제 (0) | 2021.03.15 |
[ Oracle ] to_char를 이용해 돈 표시 , 원화 출력 (1) | 2021.03.15 |
[ Oracle ] 제약조건 확인하기 join (0) | 2021.03.15 |
[ Oracle DB ] 문자형 함수 (upper, lower, length, concat, lpad, rpad, ltrim, rtrim) (0) | 2021.03.08 |
Comments