음머어's 까망별

블로그 이미지
무지 인간의 첫 걸음..
by 까망별 음머어
  • 300,940Total hit
  • 0Today hit
  • 133Yesterday hit

'Case'에 해당되는 글 1건

  1. 2008.07.10
    [Oracle] DECODE 너는 누구냐!!

Oracle에는 DECODE라는 함수가 있다.
이 DECODE라는 녀석은 우리가 평소 프로그래밍 할 때 쓰던,
SWITCH CASE 문과 동일한 효과를 낸다.

오라클 11g DECODE 링크 :
http://download.oracle.com/docs/cd/B28359_01/olap.111/b28126/dml_functions_1058.htm


뭐. 위의 링크를 따라 가서 봐도 되지만,
간략히 DECODE의 양식을 보자면,

########### DECODE 양식 ####################################

DECODE (expr , search, result [, search , result]... [, default])

###########################################################

와 같다.


자, 이제 개나 소나 다 이해할 수 있는 쉬운 예를 살펴보도록 하자.

EX)
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

평소 우리가 쓰던 C나 C++ (다른 언어는 잘 안 써봐서 모른다.. ㅠ,.ㅠ)에서
=========================== C++ =======================================
struct tbl &a;
switch(a.value) {
case 1: printf("아도겐\n");
           break;
case 2: printf("소류겐\n");
           break;
case 3: printf("요가파이어\n");
           break;
case 4: printf("카오오오~\n"); /* (블랑카 ^^;;) */
           break;
default: printf("아따따뿌우겐!\n");
           break;
}
=======================================================================

를 oracle 에서 표현한다면,

========================= Oracle ======================================
SELECT DECODE(a.value, 1, '아도겐', 2, '소류겐', 3, '요가파이어', \
                          4, '카오오오~', '아따따뿌우겐')
FROM tbl a;
======================================================================

와 같이 표현 할 수 있을 것이다.

그럼 MySQL은?
아쉽게도 MySQL에서는 DECODE 함수가 없다.

아니, 실제적으로 말하면, MySQL의 DECODE함수는 있지만,
암호화와 관련된 함수이므로,
현재 말하고 있는 오라클의 DECODE와는 완전히 다른 존재이다.


그러나! CASE문을 사용하면,
동일한 효과를 볼 수 있다는 거~

========================= MySQL ======================================
SELECT (CASE a.value WHEN 1 THEN '아도겐'
                                 WHEN 2 THEN '소류겐'
                                 WHEN 3 THEN '요가파이어'
                                 WHEN 4 THEN '카오오오~'
                                 ELSE '아따따뿌우겐' END)
FROM tbl a;

-- 괄호는 안 쳐도 되지만, 치는 게 보기 좋다.
-- 또한 이 기능은 Oracle에서도 적용된당. ^0^/
======================================================================


☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★

흠.... Oracle이 훨씬 짧군..

이번 게임은 Oracle, You Win..... Perfect....... 해라 -0-;;;;

짧은 게 좋은거여....



저작자 표시 비영리
신고
TRACKBACK 0 AND COMMENT 0

ARTICLE CATEGORY

모든 이야기 (77)
독백 (22)
MySQL (25)
Oracle (7)
영화 (6)
Linux (3)
DW(Data Warehouse) (0)
(7)
음악 (1)
Python (3)
Postgresql (2)

ARCHIVE