database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
ㆍDB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
DB2 Q&A 1586 게시물 읽기
No. 1586
이거 왜이럴까요??
작성자
김희섭(KHISUBI)
작성일
2008-04-16 08:50ⓒ
2008-04-16 08:53ⓜ
조회수
10,464

간단한 문젠데 도대체 왜이렇게 되는지 이해가 안되서 도움을 청해봅니다..ㅠㅜ



SELECT


        CHAR(DEC(SUBSTR('200804160002',9,4),1)+1) AS WORK_N

       

        ,SUBSTR(CHAR(DEC(SUBSTR('200804160002',9,4),1)+1),4,4) AS WORK_N2

       

        ,SUBSTR('000003.',4,4) AS WORK_N3 


FORM  어떤 데이블..;;



결과  

 WORK_N   WORK_N2   WORK_N3

 000003.         0003            003.



이런값이 나온답니다.. 

CHAR(DEC(SUBSTR('200804160002',9,4),1)+1) 값이 "000003." 인데 

이값을 가지고 SUBSTR 하는데 왜 WORK_N2는 "0003 "이나오고 

값을 곧장넣은 WORK_N3은 "003." 이나오는건지..ㅠㅜ

이 글에 대한 댓글이 총 2건 있습니다.

우선 이게 더 적합하지 않나 싶습니다.

db2 "values(substr(hex(time(timestamp('200804160002'||'00'))+1 minute),1,4))"

1  
----
0003


그리고 .이 붙는것은 DEC 때문입니다. 
이 .을 substr 으로 자르는 방법에 따라 들어 갈수도 안들어 갈수도 있습니다.

db2 "values(1,dec(1))"

1           2           
----------- -------------
          1            1.

조는 냥이님이 2008-04-16 09:25에 작성한 댓글입니다. Edit

Z/OS나 AS/400 DB2에서는

CHAR(DEC(SUBSTR('200804160002',9,4),1)+1) 값이
 "000003." 아니고 " 000003." 입니다
앞에 빈칸이 1개들어감(양수 빈칸,음수 '-')

CHAR 대신 DIGITS 를 사용하면 " ","." 등이 안나옵니다.

박진복(pjb708)님이 2008-04-17 10:41에 작성한 댓글입니다.
이 댓글은 2008-04-17 10:42에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
1592DB2 트랜잭션 아이디 알아내는 법 [6]
조성환
2008-04-21
11212
1591SQL문장 단위 알아내는 법 [1]
조성환
2008-04-18
10286
1590프로시저 안에서 에러처리 다시 질문드립니다. [1]
이도희
2008-04-17
11578
1586이거 왜이럴까요?? [2]
김희섭
2008-04-16
10464
1585프로시저 안에서 exception 처리 [1]
이도희
2008-04-14
15822
1584DB2 사용페이지수에 따른 사용률 구하는법좀 가르처 주세요. [6]
김형후
2008-04-10
13016
1583좀 도와줍쇼~~~^^ connection 권한설정하는것 궁금합니다... [1]
김성태
2008-04-09
10656
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다