Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

Formatting the decimal string

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DB2
View previous topic :: :: View next topic  
Author Message
lkhiger

New User


Joined: 28 Oct 2005
Posts: 89

PostPosted: Sat Sep 12, 2009 7:23 pm    Post subject: Formatting the decimal string
Reply with quote

The following query give you the easiest way to format the Decimal Number to string:

Code:
with input (number) as
(select -1123167890.4327  from sysibm.sysdummy1
)
,
transform_1 (num, part, rem, trans, fract, k ) as
(select number, int(0), int(abs(number)), varchar('', 150),
        abs(number) - int(abs(number)), 12
  from input where abs(number) >= 1000   
union all
select
number, int(rem / power(10, k - 3)) , mod(rem, power(10, k - 3)),
strip(case when  int(rem / power(10, k - 3)) = 0 and trans <= ' ' then  ''
           when  int(rem / power(10, k - 3)) > 0 and trans <= ' ' then
                 case when number < 0 then '-' else '' end
              || strip(digits(int(rem / power(10, k - 3))), l, '0')
            else trans || ',' || substr(digits(int(rem / power(10, k - 3))), 8, 3)
       end
       || case when k - 3 = 0 and fract > 0 then strip(varchar(fract), l, '0') else '' end, l, '0')
, fract, k - 3
  from transform_1, input 
where k - 3 >= 0 and abs(number) >= 1000 
union all
select number, int(0), int(0), varchar(number), number, 0 
from input
where abs(number) < 1000 
)
select num "Input",
         trans "Result"
  from transform_1 tr where k = 0


Quote:
Input............................ Result
-1123167890.4327 -1,123,167,890.4327


Thanks, Lenny icon_arrow.gif icon_exclaim.gif icon_arrow.gif
Back to top
View user's profile Send private message

lkhiger

New User


Joined: 28 Oct 2005
Posts: 89

PostPosted: Sat Sep 12, 2009 7:30 pm    Post subject: You can make UDF based on this query
Reply with quote

DB2 V9 supports
VARCHAR_FORMAT ( decimal-floating-point-expression [, format-string] ).

All users of V9 can use my query for learning what inside.

Any others, which doesn't have V9, yet, can make UDF based on this query.

Lenny icon_exclaim.gif icon_idea.gif
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> DB2 All times are GMT + 6 Hours
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts Comparing Decimal and CHAR columns rakesh17684 DB2 7 Thu Oct 20, 2016 2:33 am
This topic is locked: you cannot edit posts or make replies. Checking wether a string starts from ... sundaram.naveen CLIST & REXX 9 Thu Oct 06, 2016 11:56 am
No new posts Random Password (in string format) ge... ezhavendhan COBOL Programming 10 Mon Aug 29, 2016 3:18 pm
No new posts How to insert a lengthy string havin... vidyaa DB2 7 Thu Aug 25, 2016 5:20 pm
No new posts Which function does the Ampersand (&a... Andi1982 PL/I & Assembler 3 Wed Aug 24, 2016 2:05 pm


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us