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
운영게시판
최근게시물
Sybase Q&A 2435 게시물 읽기
No. 2435
수정 : TO_CHAR 대체 질문 드려요..^^;
작성자
1남2녀
작성일
2009-03-10 15:41ⓒ
2009-03-10 16:05ⓜ
조회수
11,895

천단위 콤마를 찍으려는데 안되는데 조언 부탁 드립니다..


select convert(numeric(10, 2), convert(varchar, '1000000'))     --> 1234567


select convert(varchar, convert(money, '10000000'), 1)           --> 1234567.0000


이렇게 나오네요..


원하는 답은  이런건데요..

1,234,567 소숫점 없이

12,345.67 소숫점 두자리


참고 버전은 Sybase IQ/12.7.0/080707/P/ESD 5/HP9000 800/HP-UX 11.23/64bit/2008-07-07 12:57:20 

입니다..

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

IQ에서는 쉽지 않은 작업입니다. 함수로 구현해 봤습니다. 참고하세요


create function to_char(v_param bigint)

returns varchar(20)

begin

      declare v_length int;

      declare v_tmp varchar(20);

      declare v_retval varchar(20);

      set v_tmp = cast(v_param as varchar(20));

      set v_length = datalength(v_tmp);

      case v_length

         when 1 then set v_retval = v_tmp;

         when 2 then set v_retval = v_tmp;

         when 3 then set v_retval = v_tmp;

         when 4 then set v_retval = left(v_tmp,1) || ',' || right(v_tmp,3);

         when 5 then set v_retval = left(v_tmp,2) || ',' || right(v_tmp,3);

         when 6 then set v_retval = left(v_tmp,3) || ',' || right(v_tmp,3);

         when 7 then set v_retval = left(v_tmp,1) || ',' || substring(v_tmp,2,3) || ',' || right(v_tmp,3);

         when 8 then set v_retval = left(v_tmp,2) || ',' || substring(v_tmp,3,3) || ',' || right(v_tmp,3);

         when 9 then set v_retval = left(v_tmp,3) || ',' || substring(v_tmp,4,3) || ',' || right(v_tmp,3);

         when 10 then set v_retval = left(v_tmp,1) || ',' || substring(v_tmp,2,3) ||  ',' || substring(v_tmp,5,3) || ',' || right(v_tmp,3);

         when 11 then set v_retval = left(v_tmp,2) || ',' || substring(v_tmp,3,3) ||  ',' || substring(v_tmp,6,3) || ',' || right(v_tmp,3);

         when 12 then set v_retval = left(v_tmp,3) || ',' || substring(v_tmp,4,3) ||  ',' || substring(v_tmp,7,3) || ',' || right(v_tmp,3);

         when 13 then set v_retval = left(v_tmp,1) || ',' || substring(v_tmp,2,3) ||  ',' || substring(v_tmp,5,3) || ',' || substring(v_tmp,8,3) || ',' || right(v_tmp,3);

         when 14 then set v_retval = left(v_tmp,2) || ',' || substring(v_tmp,3,3) ||  ',' || substring(v_tmp,6,3) || ',' || substring(v_tmp,9,3) || ',' || right(v_tmp,3);

         when 15 then set v_retval = left(v_tmp,3) || ',' || substring(v_tmp,4,3) ||  ',' || substring(v_tmp,7,3) || ',' || substring(v_tmp,10,3) || ',' || right(v_tmp,3);

         else set v_retval = ‘Overflow Error’

end case;

return(v_retval);

end


이렇게 함수로 만들고 함수를 이용하여 SQL을 사용해 보세요

SELECT TO_CHAR(1000000)

세지아빠(sejiappa)님이 2009-03-12 11:18에 작성한 댓글입니다.

답변 갑사드립니다...


그럼 IQ에서는 아래와같이 표현할 수 없다는 건가요??


999,999,999        100,000,000

                         1,000

                            10


999,999,999.99    100,000,000.01

                        1,000.10

                           10.00 

1남2녀님이 2009-03-12 14:17에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
2439칼럼안에 문자형과 숫자형 데이타가 같이 존재할때 궁금점입니다 [4]
정승호
2009-03-12
10110
2438logical reads가 과연 성능 측정에 척도가 될까요? [2]
karerina
2009-03-12
8628
2437[급질]ODBC error [1]
DawnLee
2009-03-12
8627
2435수정 : TO_CHAR 대체 질문 드려요..^^; [2]
1남2녀
2009-03-10
11895
2434조건의 우선순위 [2]
karerina
2009-03-10
8348
2433시스템정보를 이용해서 테이블생성 스크립트작성 방법 좀 알려주세요(초보) [2]
지젤
2009-03-09
9240
2432간단한 튜닝 관련 질문입니다. [1]
AZA
2009-03-05
8011
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다