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 Fileaid Update Replace with null string descann Compuware & Other Tools 4 Mon May 15, 2017 3:00 pm
No new posts Formatting VB File Learncoholic DFSORT/ICETOOL 3 Mon Mar 20, 2017 12:29 pm
No new posts Replacing same string with different ... vickey_dw DFSORT/ICETOOL 6 Wed Feb 22, 2017 10:44 pm
No new posts Joinkeys with decimal scdinesh DFSORT/ICETOOL 3 Fri Feb 10, 2017 4:46 am
No new posts Converting decimal to numeric using I... Balaryan DFSORT/ICETOOL 4 Thu Feb 02, 2017 11:27 pm


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