Función ZONED( )

Convierte datos numéricos en datos de caracteres y agrega ceros a la izquierda de los datos de salida.

Sintaxis

ZONED(número; longitud)

Parámetros

Nombre Tipo Descripción
número

numérico

El valor numérico para convertir en una cadena.

Nota

Si desea agregar ceros iniciales a un valor de caracteres que contenga una cadena numérica, debe usar la función VALUE( ) para convertir los caracteres en datos de tipo numérico antes de usar el valor como datos de entrada para ZONED( ). Si desea obtener más información, consulte Función VALUE( ).

longitud numérico

La longitud de la cadena de salida.

Salida

Carácter.

Ejemplos

Ejemplos básicos

Información de entrada de íntegro

Devuelve "235":

ZONED(235; 3)

Devuelve "00235" porque longitud es mayor que el número de dígitos de número; por lo tanto, se agregan dos ceros al principio del resultado:

ZONED(235; 5)

Devuelve "35" porque longitud es menor que el número de dígitos de número; por lo tanto, el dígito ubicado más a la izquierda se quita del resultado:

ZONED(235; 2)

Información de entrada decimal

Devuelve "23585", porque el formato de datos zonados no admite un separador decimal:

ZONED(235,85; 5)

Valor de entrada negativo

Devuelve "64489M", porque el número es negativo y "M" representa el dígito final 4:

ZONED(-6448,94; 6)

Devuelve "489J", porque la longitud es inferior a la cantidad de dígitos del número; por lo tanto, los dos dígitos ubicados más a la izquierda se truncan del resultado y el número es negativo y "J" representa el dígito final 1:

ZONED(-6448,91; 4)

Ejemplos avanzados

Agregar ceros iniciales a un campo de caracteres que contiene números

El campo Número_de_empleado contiene el valor "254879". Debe convertir el valor en una cadena de 10 dígitos con ceros al principio.

Sugerencia

Debe utilizar la función VALUE( ) para convertir el carácter en datos numéricos antes de utilizar el numérico como datos de entrada para ZONED( ).

COMMENT devuelve "0000254879"
ASSIGN v_largo_cadena = 10
ASSIGN v_cant_decimales = 0
ZONED(VALUE(Número_de_empleado; v_cant_decimales); v_largo_cadena)

Armonización de un campo clave al unir tablas

Usted tiene dos tablas, Ar y Cliente, y necesita unirlas por el campo NúmClien para realizar más análisis. Cada una de las dos tablas tiene un campo NúmClien, pero el formato de datos es diferente:

  • Campo numérico Ar (por ejemplo, 235)
  • Cliente campo de 5 caracteres que completa los números con ceros al principio (por ejemplo, "00235")

Para unificar los campos al unir, de manera que las longitudes y los tipos de datos sean iguales, utiliza la función ZONED( ) para convertir el campo clave Ar NúmClien a un campo de caracteres con una longitud de 5 para que coincida con el formato del campo clave en Cliente:

OPEN Ar PRIMARY
OPEN Cliente SECONDARY
JOIN PKEY ZONED (NúmClien;5) FIELDS NúmClien Vencimiento Monto SKEY NúmClien UNMATCHED TO Ar_Clien OPEN PRESORT SECSORT

Observaciones

Cómo funciona

Esta función convierte los datos numéricos en datos de caracteres y agrega ceros al inicio a la salida. La función se suele utilizar para unificar los campos que requieren ceros al inicio, por ejemplo, los campos de número de cheque, número de orden de compra y número de factura.

Cuándo usar ZONED( )

Utilice la función para convertir un valor numérico positivo en un valor de caracteres que contenga ceros al inicio. Esto es útil para la normalizar los datos en campos que se utilizarán como campos clave.

Por ejemplo, si una tabla contiene número de facturas con la forma 100 en un campo numérico y otra tabla contiene números de facturas con la forma "00100" en un campo de caracteres, puede utilizar ZONED( ) para convertir el valor numérico 100 en el valor de caracteres "00100". Esto permite comparar números de facturas semejantes.

Longitud de la cadena y valores de retorno

Los ceros al inicio se agregan al valor de salida cuando el valor longitud es mayor que el número de dígitos en número. Cuando longitud es menor que la cantidad de dígitos en número, la salida se trunca desde el lado izquierdo. Si el valor de número tiene la misma longitud que longitud, entonces no se agregan ceros.

Números decimales

El tipo de datos de zona no incluye una coma decimal explícita.

Números negativos

Si el número de valor de entrada es negativo, el dígito ubicado más a la derecha se muestra como un carácter en el resultado:

  • "}" para 0
  • una letra entre "J" y "R" para los dígitos 1 al 9

ZONED( ) y la edición Unicode de Analytics

Si trabaja con la edición Unicode de Analytics, es necesario utilizar la función BINTOSTR( ) para visualizar correctamente el valor devuelto de la función ZONED( ). También necesita utilizar la función BINTOSTR( ) si desea utilizar el valor devuelto de la función ZONED( ) como un parámetro en otra función.

Guía de creación de scripts de ACL 14.1