TSO-ISPF JCL COBOL VSAM DB2 CICS IMS-DB Tools Articles Forum Quiz Interview Q&A

JCL - SORT INCLUDE Condition


Use an INCLUDE statement if you want only certain records to appear in the output data set. The INCLUDE statement selects the records you want to include.

You can specify either an INCLUDE statement or an OMIT statement in the same DFSORT run, but not both.

Syntax:

INCLUDE COND=(field1 starting position, field1 Length,field1 format_type,
        Relational Operator,
	[constant] [field2 starting position, field2 Length,field2 format_type])

Syntax discreption below.

nameDescription
Field1 starting positionStarting position of field1 to be compared
Field1 LengthLength of the field1 to be compared
Field1 format_typeFormat of the field1 like CH, PD, BI etc,.
Relation operatorRelational operators like GT, EQ, NE, LT etc,.
EQ - Equal to
NE - Not equal to
GT - Greater than
GE - Greater than or equal to
LT - Less than
LE - Less than or equal to
Constanthardcoded value which is compared with field1
Field2 starting positionStarting position of field2 which is to be compared with Field1
field2 LengthLength of field2 which is to be compared with field1
Field2 Format_typeFormat of the field2 like CH, PD, BI etc,.

Let see an example below,

Example: Copy records depending upon condition - INCLUDE in sort JCL

INPUT FILE:

12345678901234567890 ---> Column
KALAIA  123 RASAN
SRINIV  198 ASAN
KALAIA  023 RASAN
REVATH  111 ISAMBATH
SRINIV  098 ASAN
SANKAR  222 ICHELLA
GUNASE  333 ELAN

Below code is to copy records from input file which contains 'SRINIV' at 1st position.

SORT JCL:

//STEP01    EXEC PGM=SORT
//SYSOUT    DD SYSOUT=*
//SORTIN    DD DSN=userid.SORT.INPUT.FILE,DISP=SHR  ---> Input file
//SORTOUT   DD DSN=userid.SORT.OUTPUT.FILE,         ---> Output file
//       DISP=(NEW,CATLG,DELETE),UNIT=SYSDA,
//       SPACE=(CYL,(1,4),RLSE),
//       DCB=(RECFM=FB,LRECL=80,BLKSIZE=0)
//SYSIN     DD *
    SORT FIELDS=COPY
    INCLUDE COND=(1,6,CH,EQ,C'SRINIV')              ---> Sort statements
/*

When you execute the above JCL, it produces the following result −

OUTPUT FILE:

12345678901234567890 ---> Column
SRINIV  198 ASAN
SRINIV  098 ASAN

Explanation: INCLUDE COND=(1,6,CH,EQ,C'SRINIV')

Where,
1         - Starting position(column).
6         - Length of field.
CH        - Represents charater.
EQ        - Equal to.
C'SRINIV' - Contant character value.


If you have any doubts or queries related to this chapter, get them clarified from our Mainframe experts on ibmmainframer Community!

Are you looking for Job Change? Job Portal