Try OpenEdge Now
skip to main content
ABL Reference
ABL Syntax Reference : LT or < operator

LT or < operator

Returns a TRUE value if the first of two expressions is less than the second.


expression { LT | < } expression
A constant, field or variable name, or expression. The expressions on either side of the LT or < = must be the same data type, although one can be an integer and the other decimal.


This procedure displays information for those Item records whose OnHand value is less than the Allocated value:
FOR EACH Item NO-LOCK WHERE Item.OnHand < Item.Allocated:
DISPLAY Item.ItemNum Item.ItemName Item.OnHand Item.Allocated.


*By default, the AVM uses the collation rules you specify to compare characters and sort records. The collation rules specified with the Collation Table (-cpcoll) startup parameter take precedence over a collation specified for any database the AVM accesses during the session, except when the AVM uses or modifies pre-existing indexes. If you do not specify a collation with the -cpcoll startup parameter, the AVM uses the language collation rules defined for the first database on the command line. If you do not specify a database on the command line, the AVM uses the collation rules with the default name "basic" (which might or might not exist in the convmap.cp file).
*If either of the expressions is the Unknown value (?), then the result is the Unknown value (?); if both of the expressions are the Unknown value (?), then the result is FALSE.
*You can compare character strings with LT. Most such comparisons are case insensitive in ABL. That is, upper-case and lower-case characters have the same sort value. It is possible to define fields and variables as case sensitive (although it is not advised, unless strict ANSI SQL adherence is required). If either expression is a field or variable defined as case sensitive, the comparison is case sensitive and "Smith" does not equal "smith."
*Characters are converted to their sort code values for comparison. Using the default case-sensitive collation table, all uppercase letters sort before all lowercase letters (for example, a is greater than Z, but less than b.) Note also that in character code uppercase A is less than [ , \ , ^ , _, and  ' , but lowercase a is greater than these.
*You cannot compare data of different DATE, DATETIME, and DATETIME-TZ data types to each other using LT. You must first convert different date and datetime data types to the same data type before doing a comparison between them.
*You can use LT to compare a LONGCHAR variable to another LONGCHAR or CHARACTER variable. The variable values are converted to -cpinternal for comparison and must convert without error, or the AVM raises a run-time error.
*You cannot use LT to compare one CLOB field to another.
*You can use LT to compare two enums, including both ABL and .NET enums, as long as they are the same enum type. LT compares the underlying numerical values of the enumerators.