본문 바로가기

ORACLE11g/SQL

[11gSQL] 4장 날짜,화폐단위 변경 및 조건문

# 4-17


데이터베이스에서 임의로 금액을 출력해 보았다.



화폐의 단위가 '달러'로 나오고 있다.


'원'으로 바꿔보자.




현재 환경 변수는 이렇게 설정되어 있고



이렇게 변경해주면


(서버와는 관계없고 클라이언트의 설정을 바꾼 것임)



'원' 단위로 변경되었다.


set NLS_LANG=AMERICAN_KOREA.KO16MSWIN949


AMERICAN : Display 되는 message의 언어

KOREA : 날짜형식, 숫자형식, 화폐단위

KO16MSWIN949 : Client측의 Character Set


이번엔 스페인어로도 바꿔보았다.





# 4-38


조건문을 배워보자.


조건문에는 크게 3가지가 있는데,


Simple CASE

Seached CASE

그리고, DECODE 함수를 사용하는 방법이 있다.


부서번호가 10번이면 임금을 10% 인상하고

부서번호가 20번이면 임금을 20% 인상하고

그 외에는 동결하는 조건문을 작성해보자.


일단 Simple CASE를 이용하면 아래와 같다.



이번에는 Searched CASE를 이용해서 같은 작업을 수행해 보았다.


쿼리문의 차이에 유의해서 보자.



마지막으로, DECODE 함수를 이용해서 같은 작업을 수행해 보았다.


쿼리문이 훨씬 간단해졌다.


Simple CASE


CASE dept

WHEN 10

THEN sal*1.1


dept10이면

sal*1.1을 수행한다.


Simple CASE는

dept10인가?

20인가?

30인가?

를 물어서 조건을 만족할 시

THEN을 수행한다.

Searched CASE


CASE

WHEN dept = 10

THEN sal*1.1


dept = 10 이면

sal*1.1을 수행한다.


Searched CASE는

dept = 10이라는 

조건식

만족하는가?

를 물어서 조건을 만족할 시

THEN을 수행한다.



DECODE 함수는 이외에도

대소비교를 통한 등급 산출 등에도 사용할 수 있다.



비교대상은 각 등급 간의 gap(몫)으로 비교되며

등급간의 gap이 동일해야한다.

'ORACLE11g > SQL' 카테고리의 다른 글

[11gSQL] 5장 GROUP BY  (0) 2016.10.04
[11gSQL] 조건문 간단한 문제  (0) 2016.10.04
[11gSQL] 4장 날짜 포맷(Date Format)  (0) 2016.09.16
[11gSQL] 3장 함수  (0) 2016.09.11
[11gSQL] 2장 날짜 형식 변경, 치환변수  (0) 2016.08.15