Background Image

FORUM

조회 수 56 추천 수 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 55
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4461
3994 clob데이터 경로 바꿀수 있스니까? 1 자바천재 2024.04.29 27
3993 db에 저장되어 있는 CLOB 데이터의 위치가 어디로 저장되는지 확인하는 방법이 있을까요? 1 자바천재 2024.04.25 26
3992 큐브리드 서비스 시작이 안됩니다. 1 file 황남빵 2024.04.24 31
3991 큐브리드 JDBC 드라이버 XA문의 및 큐브리드 분산트랜잭션(XA) 지원 문의 1 몽키스패너 2024.04.24 30
3990 group_concat 변수 리턴 관련... 1 썬더기 2024.04.22 25
3989 기 DB에서 테이블 정보만 가져와서 다른 DB에 생성 1 바다소금 2024.04.22 18
3988 큐브리드 매니저 속도 문의 1 연동테스트용 2024.04.22 19
3987 cubrid count 속 2 kanin 2024.04.19 29
3986 cubrid 10.1 데이터 덮어쓰기 질문입니다. 4 ysk96 2024.04.18 64
3985 ACTION 명령어? 예약어? 1 투투투투기기 2024.04.17 20
3984 sql 구문 사용시 데이터 타입 decimal일 경우 1 투투투투기기 2024.04.11 30
3983 Regexp_count 4 SEO 2024.04.09 66
3982 큐브리드 메모리 오류 관련 질문 2 file 뚜벅뚜벅 2024.04.09 67
3981 큐브리드 실행이 안되는 이슈 1 file 최현욱 2024.04.09 42
3980 unloaddb & loaddb 관련 질문이 있습니다. 1 543534512 2024.04.06 47
3979 mac m1 다운로드 오류 1 file 혜주냉면 2024.04.05 42
3978 list 함수로 만든 sequence type을 varchar로 변환 문의 1 플레이어블 2024.04.04 36
» DECODE, CASE WHEN 사용법 문의 2 핑크팬더 2024.04.03 56
3976 schema 파일 loaddb - 스키마 정보 중복오류 문의 4 daay 2024.03.21 91
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 200 Next
/ 200

Contact Cubrid

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