ICASE( ) Function
Evaluates the results from a list of conditions.
ICASE( lCondition1, eResult1 [, lCondition2, eResult2] ...
[, eOtherwiseResult])
Parameters
lCondition
Specifies a condition as a logical expression to evaluate.If lCondition evaluates to False (.F.), ICASE( ) continues to evaluate the next condition and returns the corresponding eResult for that condition if it evaluates to True (.T.). If lCondition evaluates to null (.NULL.), Visual FoxPro treats lCondition as if it evaluated to False (.F.).
- eResult
Specifies a result to return if lCondition evaluates to True (.T.).
- eOtherwiseResult
Contains the result returned if all conditions evaluate to False (.F.).
Return Value
ICASE( ) returns the first eResult as soon as lCondition evaluates to True (.T.).
If all conditions evaluate to False (.F.), ICASE( ) returns eOtherwiseResult.
If eOtherwiseResult is omitted, and all conditions evaluate to False (.F.), ICASE( ) returns null (.NULL.).
Remarks
You must always pass a set of two parameters to ICASE( ). If you pass an odd number of parameters, the last parameter is treated as the return value for eOtherwiseResult.
You can pass up to 100 pairs of parameters for ICASE( ).
If you use a long ICASE( ) expression in a filter expression, such as in a FOR or WHERE clause, make sure that SYS(3055) is set to an appropriate complexity level to avoid generating an error. For more information, see SYS(3055) - FOR and WHERE Clause Complexity.
Example
The following example demonstrates different scenarios using ICASE( ) to evaluate expressions and returning certain values based on the results of those expressions.
The following line of code displays "First is true" because the first expression evaluates to True (.T.).
? ICASE(1+1=2,"First is true",1+1=3,"Second is false","None are true")
The following line of code displays "Second is true" because the first expression evaluates to False (.F.), but the second expression evaluates to True (.T.).
? ICASE(1+2=2,"First is false",1+2=3,"Second is true","None are true")
The following line of code displays "None are true", which is the last result specified, because the first and second expressions evaluate to False (.F.).
? ICASE(1+2=2,"First is false",1+1=3,"Second is false","None are true")
See Also
Reference
IIF( ) Function
EVALUATE( ) Function
EVL( ) Function