View previous topic :: View next topic
|
Author |
Message |
zaphany
New User
Joined: 16 May 2006 Posts: 11
|
|
|
|
Dear all,
Just wondering, i have the following case :
Code: |
Input
field1 field2 field3
123 456 a
123 000 b
000 789 c
|
Code: |
Output
456a
123b
789c
|
basically, what i want to do is if field 2 has value, take field 2 & 3 to form the output, if field 2 = 0, take field 1 & 3 to form the output
Now, what i do is to do DFSORT
Code: |
sort 1 :
SORT FIELDS=(1,3,CH,A)
INCLUDE COND=(4,3,ZD,EQ,0)
OUTREC FIELDS=(1,3,7,1)
sort 2 :
SORT FIELDS=(4,3,CH,A)
INCLUDE COND=(4,3,ZD,NE,0)
OUTREC FIELDS=(4,3,7,1)
sort 3 :
merge sort 1 + sort 2 to form the output
|
My question is: is there a much simplier way to do so? by ICETOOLS or DFSORT?
Thanks! |
|
Back to top |
|
|
Frank Yaeger
DFSORT Developer
Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
|
|
|
|
You can use DFSORT's IFTHEN function to do that kind of thing much more easily. Here's a DFSORT job that will do what you asked for:
Code: |
//S1 EXEC PGM=ICEMAN
//SYSOUT DD SYSOUT=*
//SORTIN DD *
123456a
123000b
000789c
/*
//SORTOUT DD SYSOUT=*
//SYSIN DD *
OPTION COPY
INREC IFTHEN=(WHEN=(4,3,ZD,EQ,+0),BUILD=(1,3,7,1)),
IFTHEN=(WHEN=NONE,BUILD=(4,3,7,1))
/*
|
For complete information on DFSORT's IFTHEN function, see:
Use [URL] BBCode for External Links |
|
Back to top |
|
|
zaphany
New User
Joined: 16 May 2006 Posts: 11
|
|
|
|
Thanks Frank! The information really helps! It reduces my original JCLs from 60 lines to 10 lines! so great!! |
|
Back to top |
|
|
Frank Yaeger
DFSORT Developer
Joined: 15 Feb 2005 Posts: 7129 Location: San Jose, CA
|
|
|
|
Glad I could help. |
|
Back to top |
|
|
|
|