반응형
이번 함수는 비교연산자라 하면 편할것 같다.

사용방법은 간단하다.

select decode(데이터 값, 비교 값, 참일경우 도출값, 거짓일경우 도출값) from dual; 

ex)
select decode(-1,1,3,4) from dual; 
-> 4 
select decode(1,1,3,4) from dual; 
-> 3

이나온다.
참 간단하고 사용하기가 편하나.

case 문과 비슷하나 사용방법이 편리한거 같은데
depth가 길어지면 성능이 저하된다고 한다고 한다.


select decode(데이터 값
, 비교 값1, 참일경우 도출값1, 비교 값2, 참일경우 도출값2, 비교 값3, 참일경우 도출값3, 거짓일경우 도출값) from dual; 

ex)
select decode(-1,1,7,2,8,3,9,0) from dual; 
-> 0 
select decode(2,1,7,2,8,3,9,0) from dual
-> 8

이렇게 되는 식이다.
잊지말자.. 


 
반응형

'프로그래밍 > ORACLE' 카테고리의 다른 글

[ORACLE] SESSION KILL  (0) 2013.12.20
[ORACLE] LPAD and INSTR  (0) 2011.08.09
[ORACLE] sign  (0) 2011.07.22
[ORACLE] translate(특정문자 제거)  (0) 2011.07.22
[Oracle] commit 후 데이터 복구  (2) 2011.03.29
반응형
음.. 이번주는 정말 힘든 하루인거 같다..
잘모르는 sql은 정말... ㅠㅡ
허나 남의 주머니에서 돈을 꺼내는것이 쉽지만은 않다.(월급)

sign() 이라는 함수를 쓰게 되어서 이렇게 올린다.
사용방법은 간단하다.

sign(number type);
ex)
sign(1) 
or  sign(0.5) or  sign(0) or sign(-1)

1 , 1, 0, -1

이러한 값을 도출해낸다.

양수일경우 1이 표기되고 음수일경우 -1 0일경우는 0이다.
오옷.. 이러한 좋은것이...
간단하고도 설명도 편하고 딱 떨어지고 참 좋다. 
반응형

'프로그래밍 > ORACLE' 카테고리의 다른 글

[ORACLE] LPAD and INSTR  (0) 2011.08.09
[ORACLE] decode  (0) 2011.07.22
[ORACLE] translate(특정문자 제거)  (0) 2011.07.22
[Oracle] commit 후 데이터 복구  (2) 2011.03.29
ORACLE 소수점이하 삭제.  (0) 2010.07.07
반응형
그제던가.. 일을 하다가 부득의하게 디비 update를 하게됬는데
대상자를 찾던중 필요한 부분을 빼게됬다...  아이런.. 잘모르는데.. ㅜㅡ
인터넷을 미친듯이 뒤지다가 찾은 한녀석.. ㅋㅋ

translate 라는 함수이다.

translate 에대해서 설명하자면 값에서 특정문자들을 쏙쏙 빼준다. ㅋㅋ 이렇게 고마운녀석을 보았다 싶었다.

translate (데이터값, 체크대상문자열, 교환문자열);
이렇게 되어 있는데. 음.. 뭐랄까 이상하다.

두가지 예제를 올려야겠다. 왜나는 이상한 값이 나올까..
오히려 영문을 제외해버리고 숫자만 나온다 원래는 이게 아닌데...
ex1)
select translate('128A5B8C9D4','1234567890ABCD','1234567890') from DUAL 

결과값 -> 1285894 이렇게 나온다.
원래는 순차 적용으로 알고 있는데.. ㄷㄷ 

다음 예제를 보면.. 해깔린다.. 정말.
ex2) 
select translate('128D5B8C9D4','1234567890ABCDEFGHIJKL','ABCDEFGHIJKL') from DUAL

결과값 -> ABHELHID 

이렇게 나온다 예상으로라면 DBCD 이렇게 나와야되는데..

아무튼 숫자는 정확하게 체크를 할수 있다는게 포인트~
숫자만 뽑아 낼때는 상당히 유용하다는것이다.. 

암튼 조심히 써야될꺼 같다.. 아니면 내가 잘못 이해한것일지도.. ㄷㄷ


ps. 다른 분이 만들어 놓은 예제를 약간 손을 봤다.
http://neokido.tistory.com/356 여기서 가져왔다. 
select translate('1tech23', '123456', '45A') from dual;
-> 4tech5A
select translate('222tech', 'ech2', '3itA') from dual; 
->  AAAt3it

음.. 왜 나는 안될까.. 조금더 알아봐야될꺼 같다. 
반응형

'프로그래밍 > ORACLE' 카테고리의 다른 글

[ORACLE] decode  (0) 2011.07.22
[ORACLE] sign  (0) 2011.07.22
[Oracle] commit 후 데이터 복구  (2) 2011.03.29
ORACLE 소수점이하 삭제.  (0) 2010.07.07
ORCLE 자주 사용하는 명령어  (0) 2010.07.07

+ Recent posts