Background Image

FORUM

조회 수 57 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄


* 질문 등록 시 다음의 내용을 꼭 기입하여 주세요.

OS
Window7 32bit, Linux 64bit 등
CUBRID Ver.
[cubrid_rel] 수행 결과
CUBRID TOOL Ver.
[도움말]-[버전정보] 확인
응용 환경(API)
java, php, odbc 등 입력


* CUBRID 응용 오류, SQL 오류 또는 SQL 튜닝 관련된 문의는 반드시 다음의 내용을 추가해 주세요. 비밀글이나 비밀 댓글도 가능합니다.
* 저희가 상황을 이해하고, 재현이 가능해야 알 수 있는 문제들이 많습니다. 가능한 정보/정황들을 부탁합니다.

 

에러 내용 및 재현 방법 재현 가능한 Source와 SQL
관련 테이블(인덱스, 키정보 포함) 정보 CUBRID 홈 디렉토리 아래 log 디렉토리 압축


-------------- 아래에 질문 사항을 기입해 주세요. ------------------------------------------------------------------------
 

안녕하세요 큐브리드 SQL중 DECODE 사용하다 문의점이 있어서 문의드립니다.

 

아래 SQL 사용시 DECODE시 해당 테이블의 컬럼으로 DECODE 값을 나타내는 것은 안되는 것이 맞는건가요?

 

☞ 해당 테이블 정보입니다. 

■ msg_log (테이블)

- cont_seq numeric(11,0) (컬럼)

- msg_type numeric(1,0) (컬럼)

- sms_text varchar(160) (컬럼)

 

■ mms_contents_info (테이블)

- cont_seq numeric(11,0) (컬럼)

- msg_type (numeric(1,0) (컬럼)

- mms_body varchar(2000) (컬럼)

 

 

☞ DECODE(mlog.msg_type, 6 , 1, 2) 이런식으로 값을 넣어줄시 가능하지만 해당 컬럼 DECODE(mlog.msg_type, 6 , mms.mms_body, mlog_sms_text) 으로 출력시 안되네요

해당 컬럼으로 DECODE 값 출력시 안되는 것이 맞는것인지?

■ DECODE 사용 SQL 

SELECT 

  DECODE(mlog.msg_type, 6 , mms.mms_body, mlog_sms_text) sms_txt 

  FROM msg_log mlog 

          ,mms_contents_info mms 

 WHERE 1=1 

     AND mlog. cont_seq = mms.cont_seq 

;

 

☞ CASE WHEN 사용시  THEN 뒷부분에 해당하는 컬럼(mms.mms_body) ELSE 에 해당 컬럼mlog.msm_text으로 넣을시 동작이 안되는 것이 맞는건가요?

■ CASE WHEN 사용 SQL 

SELECT 

   CASE WHEN mlog.msg_type = 6 THEN mms.mms_body

   ELSE mlog.msm_text

   END AS sms_txt

  FROM msg_log mlog 

          ,mms_contents_info mms 

WHERE 1=1 

    AND mlog.cont_seq = mms_cont_seq

;

 

 

☞ 위에 방법이 안된다고 하면 DECODE나 CASE WHEN 해당 컬럼 넣어서 사용할 수 있는 방법이나 다른 방법이 있다면 알려주시기를 부탁드립니다. 

  • ?
    큐브리드_김주현 2024.04.04 09:50
    큐브리드를 이용해주셔서 감사합니다.

    아래는 올려주신 내용을 바탕으로 샘플을 만들어 본 것이고 , 정상 출력됩니다.

    DECODE오류가 아닌 올려주신 글 중에 오타(mms_cont_seq -> mms.cont_seq 등)으로 인한 오류가 아닌지요? 이를 점검해 보시기 바랍니다.

    -----Test---

    drop table msg_log;
    create table msg_log
    (id int
    ,cont_seq numeric(11,0)
    ,msg_type numeric(1,0)
    ,sms_text varchar(160)
    );
    insert into msg_log values(1,15,5,'(1_text)CUBRID');
    insert into msg_log values(2,15,6,'(2_text)CUBRID');

    drop table mms_contents_info;
    create table mms_contents_info
    (id int
    ,cont_seq numeric(11,0)
    ,msg_type numeric(1,0)
    ,mms_body varchar(2000)
    );

    insert into mms_contents_info values(10,11111,1,'Be ambitious');
    insert into mms_contents_info values(20,22222,0,'an old friend');
    insert into mms_contents_info values(1,15,1,'(body)IS KING');

    수행 결과1)
    select mms.cont_seq,
    mlog.msg_type,
    DECODE(mlog.msg_type, 6 , mms.mms_body, mlog.sms_text) sms_text
    from msg_log mlog, mms_contents_info mms
    where 1=1
    AND mlog.cont_seq = mms.cont_seq

    === <Result of SELECT Command in Line 6> ===

    cont_seq msg_type sms_text
    ==================================================================
    15 5 '(1_text)CUBRID'
    15 6 '(body)IS KING'

    수행결과2)

    SELECT
    CASE WHEN mlog.msg_type = 6 THEN mms.mms_body
    ELSE mlog.sms_text
    END AS sms_txt
    FROM msg_log mlog
    ,mms_contents_info mms
    WHERE 1=1
    AND mlog.cont_seq = mms.cont_seq

    sms_txt
    ======================
    '(1_text)CUBRID'
    '(body)IS KING'

    감사합니다.
  • ?
    핑크팬더 2024.04.09 10:27
    확인해보니 mms_contents_info(테이블)의 콜레이션이 euckr_bin이고 msg_log(테이블)의 콜레이션이 utf8_bin으로 되어있어서 서로 타입이 안맞는 문제로 cast함수를 사용해서 형변환으로 해결되었습니다. 답변 감사드립니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 CUBRID 사용자를 위한 DBeaver 도구 출시 안내 admin 2024.04.23 63
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4464
3879 cubrid에 세션확인 방법 1 redrum 2023.08.04 142
3878 테이블 코멘트 컬럼 코멘트 질문 1 file 대청댐 2023.08.03 74
3877 다중 IN(튜플 IN)이 1건인 경우 오류 발생됩니다 큐브리드 자체문제이지 않나 싶어 문의드립니다 1 일개미81호 2023.08.01 92
3876 GRANT SELECT 후 SELECT 쿼리 실행 오류 문의 1 바보똥개 2023.07.25 103
3875 auto commit 이 되어있어서 잘못 update 처리한 데이터가 commit 되었을 때 대처법 부탁드립니다 1 rollback 2023.07.21 86
3874 운영db 접근이 되지 않아 문의 드립니다 1 file 찬이 2023.07.20 99
3873 홈경로 databases.txt 질문드립니다 1 큐브리드드 2023.07.17 92
3872 Cubrid admin 접속 제한 문의드립니다. 2 데굴v 2023.07.13 118
3871 특정단어 삭제 6 ddmmdd 2023.07.13 165
3870 error while loading shared libraries: libncurses.so.5 에러 문의 드립니다. 3 kikiki767 2023.07.10 1483
3869 다운로드페이지에 CUBRIDManager 11.x windows-x64.exe 는 없는데 .. 다운로드 할 수 있을까요? 2 최라이거 2023.07.05 325
3868 db_class에서 테이블 목록 조회시 2 cncn 2023.07.03 297
3867 조회쿼리 시간단축 1 leeee 2023.06.30 98
3866 CUBRID 8.4.4 -> 11.0.3 로 업그레이드 시 발생할 문제가 있을까요? 1 SDDC사업개발자 2023.06.29 89
3865 CUBRID to Tibero DBLink지원 가능한지 알고싶습니다. 1 공공기관에서사용중1 2023.06.28 141
3864 ELO타입이 무엇인가요? 1 sobubble 2023.06.27 116
3863 백업파일 받았는데 복구하는 방법을 모르겠습니다. 4 Ggyak 2023.06.20 187
3862 UTF8 한글이 깨짐 4 file yonggi 2023.06.19 273
3861 저장 프로스저에 있는 함수 상세보기 문의입니다. 1 대출인생30년 2023.06.12 82
3860 MERGE INTO 속도 개선 문의 1 leeee 2023.06.12 129
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 11 ... 200 Next
/ 200

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales