UPCASV: Cómo crear una cadena en mayúscula de longitud variable

Cómo:

Lenguajes disponibles: informes

UPCASV es similar a UPCASE y convierte los caracteres alfabéticos a mayúscula. Sin embargo, UPCASV puede devolver una salida de AnV cuya longitud real está basada en el valor más bajo de la longitud real de la cadena de origen AnV o de un parámetro que especifica el límite superior (el que sea más bajo de los dos).


Principio de página

x
Sintaxis: Cómo Crear una cadena en mayúscula de longitud variable
UPCASV(upper_limit, source_string, output)

donde:

upper_limit

Número entero

Es el límite de longitud de la cadena de origen. Puede ser una constante positiva o un campo cuya porción entera represente el límite superior.

source_string

Alfanumérico de tipo An o AnV

es la cadena que se va a convertir a mayúscula. Puede ser la cadena de caracteres entre comillas simples ('), o el campo que la contiene. Si es un campo, puede estar en formato An o AnV. Si es un campo de tipo AnV, se toma la longitud en bytes almacenada en el campo. Si upper_limit es inferior a la longitud real, la cadena de origen queda truncada por el límite superior.

output

Alfanumérico de tipo An o AnV

Es el campo al que se devuelve el resultado, o el formato del valor de salida entre comillas simples ('). Puede ser un campo en formato AnV o An.

Si el formato de salida es AnV, la longitud devuelta será igual al valor de longitud que sea más bajo: la longitud de la cadena de origen o upper_limit.



Ejemplo: Cómo crear una cadena en mayúscula de longitud variable

Supongamos que estamos clasificando un campo con algunos valores en mayúscula y otros que combinan las mayúsculas con las minúsculas. La siguiente solicitud define un campo llamado LAST_NAME_MIXED que contiene algunos valores sólo en mayúscula y otros que combinan las mayúsculas con las minúsculas:

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

Ejecute una solicitud que clasifique en base a este campo:

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 salida es:

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

WebFOCUS