SQL$HELP72.HLB  —  Conditional Expressions, GREATEST and LEAST Functions
    The GREATEST and LEAST functions accept a list of two or more
    value expressions (all of which must be of comparable types) and
    return the greatest value from the list for the GREATEST function
    and the least value from the list for the LEAST function.
    The value expressions specified can be column references,
    subselects, function calls, literal values, and other complex
    value expressions.

    The data type of the resulting expression is a common data type
    to which all value expressions in the list can be converted. For
    example, LEAST(10, 10.3, 123E100) results in a DOUBLE PRECISION
    result because at least one literal is DOUBLE PRECISION.

    If the result data type resolves to a fixed CHARACTER string,
    then GREATEST and LEAST return a CHARACTER VARYING (also known as
    VARCHAR) string with the maximum length.

    The NULL keyword can appear in the list but is ignored. However,
    not all value expressions can be specified as NULL. That is, a
    non-NULL value expression must be in the list so that the data
    type for the expression can be determined.

    The GREATEST and LEAST functions can result in NULL only if at
    run time all value expressions result in NULL.

    If DATE VMS literals are used as an argument to the GREATEST or
    LEAST function, the date string must be prefixed with the type
    DATE VMS so that SQL will accept it as a DATE VMS literal and not
    a string literal. See the following examples.

    Examples: Using the GREATEST and LEAST functions

    Example 1 Using CHARACTER Versus DATE VMS Literals

    SQL> -- Different results are returned by the LEAST function (and
    SQL> -- the GREATEST function) if the parameters are treated as
    SQL> -- CHARACTER or DATE VMS literals.  This is because it is
    SQL> -- the data types of the source expressions that determine the
    SQL> -- the result data type of the LEAST (and GREATEST) functions.
    SQL> select LEAST ('1-APR-2001', '10-JAN-2000'),
    cont> LEAST (DATE VMS'1-APR-2001', DATE VMS'10-JAN-2000')
    cont> from rdb$database;

     1-APR-2001    10-JAN-2000 00:00:00.00
    1 row selected

    Example 2 finds the least value for the birthday of employees
    from two employees tables.

    Example 2 Using the LEAST Function

    SQL> SELECT LEAST (M.BIRTHDAY, E.BIRTHDAY, :SUPPLIED_DATE)
    cont> FROM EMPLOYEES E, JOB_HISTORY JH, DEPARTMENTS D, EMPLOYEES M
    cont> WHERE E.EMPLOYEE_ID = JH.EMPLOYEE_ID AND
    cont> ...
Close Help