Xbasic

SUBSTR Function

Syntax

Substring as C = SUBSTR(C character,N starting_position[,N number_of_characters])

Arguments

character

A character string.

starting_position

The character position that begins the Substring. Numeric

number_of_characters

Optional. Default = All. The number of characters to include in the Substring. Numeric

Description

Returns a substring portion of a character string.

Discussion

SUBSTR() returns a Substring of a Input_String. The Substring begins at the specified Starting_Position and continues for the specified Number_Of_Characters. If you omit the Number_Of_Characters parameter, SUBSTR() returns the right portion of the Input_String beginning at the Starting_Position. NOTE: To determine whether one string is a substring of another, use either the $? (substring) operator or the LIKE()function.

Example

substr(FIRSTNAME, 1, 3) -> "Bev", if FIRSTNAME contains "Beverly"
substr(FIRSTNAME, 5, 3) -> "rly"

Assume that you want to search your table for all the zip codes that start with "021." You can do this by defining the following filter expression:

substr(ZIP, 1, 3) = "021"

Index keys are limited to 100 characters. If you want to perform a complex ordering on multiple fields, you sometimes may exceed the key length limit if you simply concatenate fields to create the index expression. For example, the following expression includes four fields that are each 30 characters wide and results in a key that is too long:

COMPANY + DEPARTMENT + LASTNAME + FIRSTNAME

You can still achieve the correct order (in most cases) by using the following index expression:

trim(COMPANY) + substr(DEPARTMENT, 1, 15) + substr(LASTNAME, 1, 15) + substr(FIRSTNAME, 1, 10)

Note : This index expression does not work as expected if, for example, two different DEPARTMENTs within the same COMPANY have the same first 15 characters in their name.

See Also