Comment : |
Une expression conditionnelle attribue une valeur selon le résultat d'une expression logique. La valeur attribuée peut être numérique ou alphanumérique.
Remarque : contrairement aux critères de sélection utilisant IF, toutes les valeurs alphanumériques dans les expressions conditionnelles doivent être entourées de guillemets simples. Par exemple, IF COUNTRY EQ 'ENGLAND'.
IF expression1 THEN expression2 [ELSE expression3]
où :
Notez que le rapport trié final peut afficher des valeurs variées. Cela varie selon qu'on utilise DEFINE ou COMPUTE, et selon qu'on évalue un rapport de données avant ou après l'agrégation.
Les expressions qui suivent THEN et ELSE doivent avoir comme résultat un format compatible avec celui attribué au champ. Chacune de ces expressions peut être elle-même une expression conditionnelle. Toutefois, il se peut que l'expression qui suit IF ne soit pas une expression IF ... THEN ... ELSE (par exemple, IF ... IF ...).
L'exemple ci-après se sert d'une expression conditionnelle afin d'attribuer la valeur NONE au champ BANK_NAME lorsque une valeur de données lui manque (c-à-d, lorsque le champ n'a pas de données dans la source de données).
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 sortie est :
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
Vous pouvez définir une condition vraie ou fausse et puis la tester afin de contrôler la sortie du rapport. L'exmple ci-après attribue la valeur TRUE au champ MYTEST si n'importe laquelles des expressions relationnelles entre paranthèses est vraie. Ensuite, il teste la valeur 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 sortie est :
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
Remarque : le test d'une condition TRUE ou FALSE n'est valide qu'avec la commande IF. Le test n'est pas valide avec la commande WHERE.
WebFOCUS |