Nice!

Lin

On Mon, 14 Jan 2008 08:24:57 -0800 (PST), "James Bentley"
<[EMAIL PROTECTED]> said:
> Lin,
> 
> The key to solving your problem is the following function:
> "ITEMCNT
>       Top  Previous  Next
> 
> (ITEMCNT('Text String'))
> 
> Use to count the number of items in a text string separated by
> current comma delimiter.
> 
> In the following example, the value of vItems is 3.
> 
>       SET VAR vItems = (ITEMCNT('a,b,c')) " 
>       
> In essence you load the 8,000 items to a temp table with the
> following fields:
> 
> 1 original_field
> 2 first_name
> 3 mid_name
> 4 last_name
> one field for any other items in in original_field
> 5 FieldCnt=(ITEMCNT(original_field)) integer
> 
> Define a command file as follows:
> set var voriginal_field TEXT
> SET VAR vfieldcnt integer
> SET VAR iv1 INTEGER -- set up indicator variables since
> original_field could be null
> set var ... for other fields
> DROP CURSOR C1
> DECLARE C1 CURSOR FOR SELECT original_field, fieldcnt from
> temptable
> OPEN C1
> FETCH C1 INTO voriginal_field INDICATOR iv1, vFieldcnt iv2 
> WHILE SQLCODE = 0 THEN
>   IF iv1 <> -1 THEN  -- we have values in original_field  
>     SWITCH (.vfieldcnt)
>     CASE 3
>     SET VAR vfirstname = (ssub(voriginal_field,?))
>     set var other field
>     UPDATE temptable set firstname=.vfirstname, ...
>     WHERE CURRENT OF C1
>     BREAK
>     CASE 2
>     SET VAR ....
>     UPDATE
>     BREAK
>    DEFAULT
>    BREAK
> ENDSW
> FETCH C1 INTO voriginal_field INDICATOR iv1, vFieldcnt iv2 
> ENDW
> DROP CURSOR C1
> RETURN
> You will need to flesh out the above code.  It should give you a
> good start.  For the records without a comma to distinguish
> fields you may have to add code to insert commas to separate
> fields.
> 
> Jim Bentley 
> 
> --- Lin MacDonald <[EMAIL PROTECTED]> wrote:
> 
> > There are about 8000 records in that table, all different, so
> > doing it
> > by hand is a bit much.  They'd have to cart me off to a looney
> > bin
> > afterwards!
> > 
> > Lin
> > 
> > On Sun, 13 Jan 2008 09:55:07 -0500, "MikeB"
> > <[EMAIL PROTECTED]> said:
> > > How many rows of data?  If it is small, I would just write
> > the names to a
> > > text 
> > > file and massage it there to normalize it a bit with
> > appropriate
> > > delimiters 
> > > then load as ascii.
> > > 
> > > If there were only a few offenders to a particular
> > separation then by all
> > > means 
> > > put it into another table using the string manipulation
> > functions and
> > > finish 
> > > the offenders by hand.  Thing is, if you spend a great deal
> > of time
> > > trying to 
> > > figure out a way to do it programmatically for a one shot
> > deal, sometimes
> > > you 
> > > waste time on that instead of just doing the grunt work...
> > > 
> > > 
> > > 
> > > 
> > > ----- Original Message ----- 
> > > From: "Lin MacDonald" <[EMAIL PROTECTED]>
> > > To: "RBASE-L Mailing List" <[email protected]>
> > > Sent: Sunday, January 13, 2008 9:36 AM
> > > Subject: [RBASE-L] - pulling a text column apart
> > > 
> > > 
> > > > Sorry, another Newbie question --
> > > > As I redesign my Database and application, I want to
> > correct some
> > > > design problems.  One of them is that in my Supplier
> > table, I
> > > > have one column for Contacts.  I'd like to move that
> > column to
> > > > another table with multiple fields, such as First Name,
> > Last
> > > > Name, etc.  The problem is that the data in that field is
> > not
> > > > consistant.  It could contain the following:
> > > > Null
> > > > FName
> > > > FName LName
> > > > FName1, FName2
> > > > FName1, FName2, FName3
> > > > So, what would be the best way to break it apart?  Should
> > I use a
> > > > temporary table?  I thought of using SSUB, but that
> > wouldn't work
> > > > for the ones that had a First and Last name in the field
> > with
> > > > just a space in between.
> > > > thanks,
> > > > Lin MacDonald
> > > > 
> > > 
> > > 
> > 
> > 
> > 
> 
> 
> Jim Bentley
> American Celiac Society
> [EMAIL PROTECTED]
> tel: 1-504-737-3293
> 
> 
>       
> ____________________________________________________________________________________
> Be a better friend, newshound, and 
> know-it-all with Yahoo! Mobile.  Try it now. 
> http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ 
> 
> 


Reply via email to