Cómo crear una expresión condicional

Cómo:

Una expresión condicional asigna un valor basado en el resultado de una expresión lógica. El valor asignado puede ser numérico o alfanumérico.

Nota: A diferencia de los criterios de selección que utilizan IF, todos los valores alfanuméricos en expresiones condicionales deben estar entre comillas sencillas. Por ejemplo, IF COUNTRY EQ 'ENGLAND'.


Principio de página

x
Sintaxis: Cómo Escribir una expresión condicional
IF expression1 THEN expression2 [ELSE expression3]

donde:

expression1
Es la expresión que se evalúa para determinar si se le asigna el valor de expression2 o de expression3 al campo.
expression2
Es una expresión que resulta en un formato compatible con el formato asignado al campo. Puede ser una expresión condicional, y en dicho caso debe encerrarla en paréntesis.
expression3
Es una expresión que resulta en un formato compatible con el formato asignado al campo. El cercado de expresión en paréntesis es opcional.
ELSE
Es opcional, junto con expression3. Sin embargo, si no especifica una condición ELSE y si no se reúne la condición, se toma el valor de la última condición evaluada.

Note que el último informe final organizado puede mostrar valores mixtos. Esto depende de si se utiliza un DEFINE o un COMPUTE, y de si se evalúa un registro de datos antes o después de la agregación.

Las expresiones THEN y ELSE siguientes deben resultar en un formato compatible con el formato asignado al campo. Cada una de estas expresiones puede ser una expresión condicional por sí sola. Sin embargo, la expresión después de IF no puede ser una expresión IF ... THEN ... ELSE (por ejemplo, IF ... IF ...).



Ejemplo: Cómo suministrar un valor con una expresión condicional

El ejemplo siguiente utiliza una expresión condicional para asignar el valor NONE al campo BANK_NAME, cuando le falta un valor de datos (es decir, el campo no tiene datos en el origen de datos):

DEFINE FILE EMPLOYEE
BANK_NAME/A20 = IF BANK_NAME EQ ' ' THEN 'NONE'
ELSE BANK_NAME;
END
 
TABLE FILE EMPLOYEE
PRINT CURR_SAL AND BANK_NAME
BY EMP_ID BY BANK_ACCT
END

La salida es:

EMP_ID     BANK_ACCT         CURR_SAL  BANK_NAME       
------     ---------         --------  ---------       
071382660                  $11,000.00  NONE            
112847612                  $13,200.00  NONE            
117593129   40950036       $18,480.00  STATE           
119265415                   $9,500.00  NONE            
119329144     160633       $29,700.00  BEST BANK       
123764317  819000702       $26,862.00  ASSOCIATED      
126724188                  $21,120.00  NONE            
219984371                  $18,480.00  NONE            
326179357  122850108       $21,780.00  ASSOCIATED      
451123478  136500120       $16,100.00  ASSOCIATED      
543729165                   $9,000.00  NONE            
818692173  163800144       $27,062.00  BANK ASSOCIATION


Ejemplo: Cómo definir una condición como verdadera o falsa

Puede definir una condición como verdadera o falsa y después probarla para controlar el resultado de informe. El ejemplo siguiente le asigna el valor TRUE al campo MYTEST si cualquiera de las expresiones relacionales en paréntesis es verdadera. Después prueba el valor de MYTEST:

DEFINE FILE EMPLOYEE
MYTEST= (CURR_SAL GE 11000) OR (DEPARTMENT EQ 'MIS');
END
 
TABLE FILE EMPLOYEE
PRINT CURR_SAL AND DEPARTMENT
BY EMP_ID
IF MYTEST IS TRUE
END

La salida es:

EMP_ID            CURR_SAL  DEPARTMENT
------            --------  ----------
071382660       $11,000.00  PRODUCTION
112847612       $13,200.00  MIS       
117593129       $18,480.00  MIS       
119329144       $29,700.00  PRODUCTION
123764317       $26,862.00  PRODUCTION
126724188       $21,120.00  PRODUCTION
219984371       $18,480.00  MIS       
326179357       $21,780.00  MIS       
451123478       $16,100.00  PRODUCTION
543729165        $9,000.00  MIS       
818692173       $27,062.00  MIS       

Nota: El examinar por una condición TRUE o FALSE es válido sólo con el comando IF. No es válido con el comando WHERE.


WebFOCUS