case when 질문입니다. 0 3 1,906

by wenzie [PL/SQL] [2010.07.15 18:10:03]


안녕하세요~

cate란 컬럼에 "1002","1003" 이런식으로 데이터를 쌓고 있습니다.

카테고리 컬럼인데요..

이게 사용자측에 뿌려질때는 한글로 뿌려져야 합니다.

그래서 함수를 만들어서 하려 했는데요

갯수가 100개정도 되니 ..(각각 유니크한 값을 가지고 있습니다.) 

꼭 이렇게 해야 하나 싶어서요..

아래처럼 일단 만들긴 했는데요..

CREATE OR REPLACE FUNCTION FUN_RELIC(CATE VARCHAR2)

RETURN VARCHAR2

 IS
   RESULT VARCHAR2(20);
  
  
   BEGIN
    
           SELECT CASE CATE   WHEN '1'  THEN '의'
                 WHEN '2'  THEN '식'
                 WHEN '3'  THEN '주'
                 WHEN '4'  THEN '사업/생업'
                 WHEN '5'  THEN '교통/통신'
                 WHEN '6'  THEN '과학기술'
                 WHEN '7'  THEN '사회생활'
                 WHEN '8'  THEN '종교신앙'
                 WHEN '9'  THEN '문화예술'
                 WHEN '10' THEN '군사'
                 WHEN '1001' THEN '관모'
                 WHEN '1002' THEN '의류'
                 WHEN '1003' THEN '대/구'
                 WHEN '1004' THEN '신발'
                 WHEN '1005' THEN '장신구'
                 WHEN '1006' THEN '관/복함'
                 WHEN '1007' THEN '기타'
                 WHEN '2001' THEN '음식기'
                 WHEN '1007' THEN '기타'
                 WHEN '1007' THEN '기타'
                 WHEN '1007' THEN '기타'
                 WHEN '1007' THEN '기타'
                 WHEN '1007' THEN '기타'
                 WHEN '1007' THEN '기타'
                 WHEN '1007' THEN '기타'
                 WHEN '1007' THEN '기타'
                 WHEN '1007' THEN '기타'
                 WHEN '1007' THEN '기타'
                 WHEN '1007' THEN '기타'
     END
  INTO RESULT
  FROM DUAL ;
          
  
    RETURN RESULT;
   END;
  
현재는 한 20개만 작성했는데요 이런식으로 하면 큰 문제는 없나요??

다른 좋은 방법 없을까요??

by 마농 [2010.07.15 18:16:30]
코드테이블 만들어 조인하세요.

by 현 [2010.07.16 08:45:46]
코드 테이블을 만드셔야 합니다.
혹시 코드 명이 변경되더라도 테이블의 데이터만 변경하면 되어야지
일일이 소스코드를 변경할 수는 없지 않겠습니까?

by wenzie [2010.07.16 18:51:20]
헛..이글이 등록이 되었군요.. 멈춘거 같아서 익스를꺼버렸었거든요..

답변 감사합니다.

저도 저건 아닌듯 싶어 코드 테이블을 만들어서 처리 했습니다.

감사합니다~
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입