VMS Help
SORT, Specification File Qualifiers, /CONDITION
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
Defines conditions for key and data handling and for record
selection.
Formats
/CONDITION= (NAME=condition-name,
TEST=(field-name operator test-condition
[logical-operator ...]))
NAME=condition-name
Specifies the name of the condition you are testing. This
condition-name can be used in /KEY, /DATA, /OMIT, and /INCLUDE
qualifiers after it has been defined using the /CONDITION
qualifier.
TEST=(field-name operator test-condition)
Specifies the conditional test.
field-name
Specifies the name of the field you are testing. The field-name
must be defined previously by a /FIELD qualifier.
operator
Specifies the logical or relational operator used in the
conditional test. The logical operators that you can use are
AND and OR. The relational operators that you can specify are as
follows:
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
test-condition
Specifies the constant or field-name against which you are
testing. A constant is specified with the following format:
Decimal_digits (default)
%Ddecimal_digits
%Ooctal_digits
%Xhexadecimal_digits
"character"
NOTE
Normally, you do not need to specify the radix operator
(%D); however, test-condition will assume the same data type
as the field-name.
The field-name must be defined by a /FIELD qualifier.
A specification file can be used to change the relative order of
a record or to alter the contents of certain fields of a record.
You must first use a /CONDITION qualifier to define a conditional
test. Once you define a test using a /CONDITIONAL qualifier, you
can use that same test with a /KEY or /DATA qualifier to change
the order of record. You can also use the test with an /OMIT or
/INCLUDE qualifier to change the contents of a record.
If you want to change the order of records in the output file,
first specify a condition name with a /CONDITION qualifier and
set up a test for what meets that condition. Then, specify the
relative order with a /KEY qualifier of the form:
/KEY=(IF condition-name THEN value ELSE value)
You can use any values to specify the relative order of the
records.
The /CONDITION qualifier also permits you to change the contents
of a field in the output records. First specify a condition name,
and then set up a test for what meets the condition. Specify the
contents you want in the field in a /DATA qualifier of the form:
/DATA=(IF condition-name THEN "new-contents" ELSE "new-contents")
1./FIELD=(NAME=AGENT,POSITION:20,SIZE:15)
/CONDITION=(NAME=AGENCY,
TEST=(AGENT EQ "Real-T Trust"
OR
AGENT EQ "Realty Trust"))
/DATA=(IF AGENCY THEN "Realty Trust" ELSE AGENT)
In this example, two real estate files are being sorted. One
file refers to an agency as Real-T Trust; the other refers
to the same agency as Realty Trust. The /CONDITION and /DATA
qualifiers instruct Sort to list the AGENT field in the sorted
output file as Realty Trust.
2./FIELD=(NAME=ZIP,POSITION:60,SIZE:6)
/CONDITION=(NAME=LOCATION,
TEST=(ZIP EQ "01863"))
/KEY=(IF LOCATION THEN 1
ELSE 2)
In this example, all the records with a zip code of 01863
will appear at the beginning of the sorted output file. The
conditional test is on the ZIP field, defined with the /FIELD
qualifier; the condition is named LOCATION. The values 1 and
2 in this /KEY qualifier signify a relative order for those
records that satisfy the condition and those that do not.
3./FIELD=(NAME=ZIP,POSITION:60,SIZE:6)
/CONDITION=(NAME=LOCATION,
TEST=(ZIP EQ "01863"))
/DATA=(IF LOCATION THEN "NORTH CHELMSFORD"
ELSE "Outside district")
In this example, the /CONDITION qualifier tests for the 01863
zip code. The /DATA qualifier specifies that the name of town
field will be added to the output record, depending on the test
results.
4./FIELD=(NAME=FFLOAT,POS:1,SIZ:0,F_FLOATING)
/CONDITION=(NAME=CFFLOAT,TEST=(FFLOAT GE 100))
/OMIT=(CONDITION=CFFLOAT)
In this example, the number 100 is considered to be an
F_FLOATING data type because field FFLOAT is defined as
F_FLOATING in the /FIELD qualifier.
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.