If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

 
Go Back  dBforums > Database Server Software > DB2 > help in SQL function

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1 (permalink)  
Old 02-17-04, 12:23
mark_tim1999 mark_tim1999 is offline
Registered User
 
Join Date: Dec 2003
Posts: 14
help in SQL function

Can anyone help in DB2 SQL?

DEPT_ID(CHAR data type)
2000
2100
2200_ABC
2300_CDE
2400_FGH

I need only numerics to be displayed(all characters aftre underscore should be truncated)?TRUNCATE does'nt work.
Reply With Quote
  #2 (permalink)  
Old 02-17-04, 14:33
ARWinner ARWinner is offline
Registered User
 
Join Date: Jan 2003
Posts: 3,575
You can try something like:

CREATE FUNCTION get_digits(INTEXT varchar(20))
RETURNS varchar(20) language SQL deterministic NO EXTERNAL ACTION CALLED ON NULL INPUT
BEGIN ATOMIC
DECLARE outText VARCHAR(100);
DECLARE strLength, counter int;
DECLARE First_Char_is_M, Char_Count int;
DECLARE currentChar CHAR;

set intext = rtrim(ltrim(intext));

SET outText = '';
SET strLength = LENGTH(inText);
SET counter = 1;

IF (inText is NULL)
THEN RETURN NULL;
END IF;

WHILE counter <= strLength DO
SET currentChar = CHAR(LCASE(SUBSTR(inText,counter,1)));
IF ((currentChar >= '0') AND (currentChar <= '9'))
THEN set outText = outText || VARCHAR(currentChar);
ELSE SET counter = strLength;
END IF;

SET counter = counter + 1;
END WHILE;
RETURN outText;
END


HTH

Andy
Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On