Créer une chaîne de caractères en majuscules de longueur variable

Comment :

Langages disponibles : reporting

UPCASV convertit des caractères alphabétiques en majuscules, et est semblable à UPCASE. Toutefois, UPCASV peut renvoyer une sortie AnV dont la longueur actuelle est la plus petite de la longueur actuelle de la chaîne source AnV et la valeur du paramètre d'entrée upper_limit.


Haut de page

x
Syntaxe : Créer une chaîne de caractères en majuscules de longueur variable
UPCASV(upper_limit, source_string, output)

où :

upper_limit

Entier

est la limite de la longueur de la chaîne source. Il peut s'agir d'une constante positive ou d'un champ dont la portion entière représente la limite supérieure.

source_string

Alphanumérique de type An ou AnV

est la chaîne à convertir en majuscules. Il peut s'agir d'une chaîne de caractères entre guillemets simples ('), ou un champ contenant celle-ci. S'il s'agit d'un champ, il peut être au format An ou AnV. S'il s'agit d'un champ au format AnV, sa longueur est prise de la longueur en octets du champ, est renvoyée. Si la valeur de limite_supérieureest inférieure à la longueur actuelle, la chaîne source est tronquée jusqu'à la limite supérieure.

output

Alphanumérique de type An ou AnV

est le champ qui contient le résultat, ou le format de la valeur de sortie entre guillemets simples ('). Il peut s'agir d'un champ au format AnV ou An.

Si le format de output_format est AnV, alors la longueur retournée est égale à la plus petite longueur de source_string et de la longueur upper_limit.



Exemple : Créer une chaîne de caractères en majuscules de longueur variable

Supposons que vous utilisez le tri sur un champ qui contient à la fois des valeurs de casses mixtes et majuscules. La requête suivante définit un champ nommé LAST_NAME_MIXED qui contient des valeurs de casse mixte et majuscules :

DEFINE FILE EMPLOYEE
LAST_NAME_MIXED/A15=IF DEPARTMENT EQ 'MIS' THEN LAST_NAME ELSE
LCWORD(15, LAST_NAME, 'A15');
LAST_NAME_UPCASV/A15V=UPCASV(5, LAST_NAME_MIXED, 'A15') ;
END

Supposons que vous exécutiez une requête qui réalise sont tri en fonction de ce champ :

TABLE FILE EMPLOYEE
PRINT LAST_NAME_MIXED AND FIRST_NAME BY LAST_NAME_UPCASV
WHERE CURR_JOBCODE EQ 'B02' OR 'A17' OR 'B04';
END

La sortie est :

LAST_NAME_UPCASV  LAST_NAME_MIXED  FIRST_NAME
----------------  ---------------  ----------
BANNI             Banning          JOHN
BLACK             BLACKWOOD        ROSEMARIE
CROSS             CROSS            BARBARA
MCCOY             MCCOY            JOHN
MCKNI             Mcknight         ROGER
ROMAN             Romans           ANTHONY

Information Builders