Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref
IBM Mainframe Forum Index
 
Register
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Profile Log in to check your private messages Log in
 
Converting field from char to number

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

New User


Joined: 03 Jul 2014
Posts: 27
Location: Italy

PostPosted: Tue Mar 29, 2016 4:24 pm    Post subject: Converting field from char to number
Reply with quote

Hi all,

i need to convert a field of a table from char to number with a SELECT statement.

Input field (char 20):

Code:
'7                   '
'24                  '
'155                 '
'3876                '
'74567               '


Output field

Code:
00007
00024
00155
03876
74567


I need ONLY the first five digits.

Thank you
Back to top
View user's profile Send private message

danylele74

New User


Joined: 03 Jul 2014
Posts: 27
Location: Italy

PostPosted: Tue Mar 29, 2016 4:52 pm    Post subject:
Reply with quote

I have found this:

Code:
SELECT RIGHT(REPEAT('0', 5) || RTRIM(CHAR(table_field)), 5)


it seems to work but only if the input field (CHAR) there are numbers, otherwise .....
Back to top
View user's profile Send private message
danylele74

New User


Joined: 03 Jul 2014
Posts: 27
Location: Italy

PostPosted: Tue Mar 29, 2016 4:55 pm    Post subject:
Reply with quote

The maximun output length is 5 (five) digits.
Back to top
View user's profile Send private message
Marso

REXX Moderator


Joined: 13 Mar 2006
Posts: 1344
Location: Israel

PostPosted: Tue Mar 29, 2016 4:58 pm    Post subject:
Reply with quote

If you are sure that you have only numbers and spaces in this column, you can try:
Code:
INT(YOUR_CHAR_COLUMN)

(Instead of INT you can use BIGINT or DEC).
In all cases, there are restrictions:
Quote:
The string must contain a valid string representation of a number.
Leading and trailing blanks are eliminated and the resulting string must conform to the rules for forming an integer constant.
Once it works, try:
Code:
DIGITS(INT(YOUR_CHAR_COLUMN))

and then
Code:
SUBSTR(DIGITS(INT(YOUR_CHAR_COLUMN)),6,5)
Back to top
View user's profile Send private message
Rohit Umarjikar

Senior Member


Joined: 21 Sep 2010
Posts: 2382
Location: NY,USA

PostPosted: Wed Mar 30, 2016 10:58 pm    Post subject:
Reply with quote

Also, this should give you what you want.
Code:
  select
LPAD(replace('7              ',' ',''),5,'0')
 from sysibm.sys1dummy
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 how to do bit operations from CHAR Martylin PL/I & Assembler 3 Wed May 13, 2020 8:27 pm
No new posts comparasion between BIN FIXED(63) an... javen777 PL/I & Assembler 10 Wed Apr 22, 2020 5:11 pm
No new posts To extract the records after the firs... saikarthik94 JCL & VSAM 5 Thu Feb 20, 2020 7:00 pm
No new posts Sort to construct single record from ... Deepti_R SYNCSORT 3 Wed Nov 13, 2019 12:14 am
No new posts Syncsort for field to field comparision Deepti_R SYNCSORT 3 Thu Nov 07, 2019 11:04 pm

Facebook
Back to Top
 
Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us