Background Image

FORUM

조회 수 61 추천 수 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 118
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4474
3740 큐브리드 실행이 안되는 이슈 1 file 최현욱 2024.04.09 50
3739 뷰 생성 후 조회하는데 원본 쿼리와 갯수가 다릅니다 1 플레이어블 2022.11.11 52
3738 큐브리드 매니저 -> 데이터베이스 복구 오류 문제 문의 3 file propolisCandy 2022.11.07 53
3737 unloaddb & loaddb 관련 질문이 있습니다. 1 543534512 2024.04.06 54
3736 autoexecquery.conf 매시간 실행 스케쥴 문의 1 Roy 2022.04.06 55
3735 cci에서 패스워드 암호화 사용 방법 1 가을이아빠 2023.01.12 55
3734 날짜 형식 변환에 대해서 궁금해서 올립니다. 1 김용용 2024.02.14 56
3733 oracle_style_empty_string 설정 클라이언트 단에서 조회 2 hjeong 2022.11.04 56
3732 임의용량에 대해 문의 드립니다. 1 김은지 2023.01.18 57
3731 JDBC로 BIT(n) 타입의 데이터를 get/set 하는 메소드는 각각 무엇인가요? 2 새옹지마 2023.01.03 57
3730 (1개의 댓글은 작성자가 썼습니다.)비주얼 베이직 큐브리드 연동후 동시에 여러 테이블 보는 방법문의 2 secret 강남우 2012.12.21 58
3729 CUBRID 11.2 rpm 설치시 cubrid 계정 패스워드 2 가을이아빠 2024.03.04 58
3728 함수 값은 null 체크가 안되나요?? 1 ozro 2022.08.22 60
3727 HA로 운영중인 CUBRID 버전업 방법과 INDEX 문제 질문드립니다. 11 secret 반짝이 2011.12.28 61
3726 FORAMT값 적용안됨 1 귀기기기 2022.10.14 61
» DECODE, CASE WHEN 사용법 문의 2 핑크팬더 2024.04.03 61
3724 jdbc 연동시의 charset 강제 변경 방법 1 file gwak 2024.03.14 62
3723 cubrid acl reload 에러 1 hiDev 2022.04.29 63
3722 javasp start fail이 발생합니다. 1 유수부쟁선 2023.09.22 63
3721 외래키 적용시 null 에러가 뜹니다. 1 쭌쿰 2020.10.28 64
Board Pagination Prev 1 ... 9 10 11 12 13 14 15 16 17 18 ... 200 Next
/ 200

Contact Cubrid

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