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 67
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4465
3779 python 3.9 지원 문의 1 리치타이거 2023.01.17 85
3778 Python Cubrid DB 연동 시 import _cubrid 오류 1 이노무소오파 2023.01.13 148
3777 cci에서 패스워드 암호화 사용 방법 1 가을이아빠 2023.01.12 55
3776 데이터베이스 백업, 복구(backupdb, restoredb) 1 wiz 2023.01.12 281
3775 실리콘 맥(M1, ARM) 큐브리드 매니저 지원 문의 2 큐유저 2023.01.09 238
3774 attribute가 AUTO_INCREMENT로 생성됐는지 확인할 수 있는 딕셔너리는 무엇인가요? 3 새옹지마 2023.01.08 365
3773 varchar <-> collection으로 변환이 가능한가요? 1 새옹지마 2023.01.08 48
3772 SET, MULTISET, LIST과 같은 컬렉션 타입 컬럼에 저장된 원소의 갯수를 알고 싶습니다. 1 새옹지마 2023.01.06 131
3771 JDBC로 SET 타입의 데이터를 get/set 하는 메소드는 각각 무엇인가요? 4 새옹지마 2023.01.04 98
3770 JDBC로 BIT(n) 타입의 데이터를 get/set 하는 메소드는 각각 무엇인가요? 2 새옹지마 2023.01.03 57
3769 큐브리드 매니저 관리모드 접속 시 오류가 발생합니다. 4 file 정A 2023.01.03 274
3768 WHERE절에 REGEXP_REPLACE를 넣고 실행하면 다운됩니다. 3 거지같은 2023.01.02 321
3767 암호화관련 문의 드립니다. 1 file 초코초코초 2022.12.29 102
3766 모든 테이블의 목록과 각 테이블의 로우 (레코드) 수 확인 4 키롱 2022.12.28 206
3765 큐브리드 FOR문 관련 질의드립니다. 1 계란 2022.12.28 222
3764 [처리완료] 큐브리드 unloaddb, loaddb 시 특수문자 깨짐 및 Lexical error 4 file 백수인 2022.12.27 137
3763 쿼리 튜닝 및 실행계획 관련 문의 드립니다. 3 file kikiki767 2022.12.23 139
3762 펑션 오류 문의드립니다 8 초코초코초 2022.12.17 142
3761 insert 시 오류 문의 1 steve 2022.12.16 127
3760 cubrid11.2 embedded SQL 지원 여부 및 메뉴얼 위치? 1 jjune1206 2022.12.15 46
Board Pagination Prev 1 ... 7 8 9 10 11 12 13 14 15 16 ... 200 Next
/ 200

Contact Cubrid

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