Formato y análisis de números como series de caracteres

Para conversiones entre tipos de datos de serie de caracteres y tipos de datos numéricos, puede proporcionar, en el parámetro FORMAT de la función CAST, una expresión de formato opcional. Para conversiones de tipos de serie de caracteres, la expresión de formato define cómo debe analizarse la serie de caracteres de origen para satisfacer el tipo de datos de destino. Para conversiones a tipos de serie de caracteres, define cómo deben formatearse los datos de la expresión de origen en la serie de caracteres de destino.

Puede especificar una expresión FORMAT para las conversiones numéricas siguientes. (La especificación de una expresión de FORMAT para las conversiones de fecha y hora se describe en Formato y análisis de valores de fecha y hora como series de caracteres.)
  • De cualquier tipo de datos de serie de caracteres (BIT, BLOB o CHARACTER) a:
    • DECIMAL
    • FLOAT
    • INTEGER
  • A cualquier tipo de datos de serie de caracteres (BIT, BLOB o CHARACTER) desde cualquier tipo de datos numérico, listados en el punto anterior.
La expresión de formato consta de tres partes:
  1. Un subpatrón que define los números positivos.
  2. Un subpatrón opcional que define los números negativos. (Si sólo se define un subpatrón, los números negativos utilizan el patrón positivo, con el signo menos como prefijo.)
  3. Los parámetros opcionales groupsep y decsep.

SINTAXIS

Parámetros

caracteres

Secuencia de cero o más caracteres. Pueden utilizarse todos los caracteres, excepto los caracteres especiales listados en la Tabla 1.

decsep

Uno o más caracteres que deben utilizarse como separador entre la parte entera y la parte decimal de un número (separador decimal). El separador decimal por omisión es un punto (.).

dígitos

Secuencia de uno o más de los símbolos numéricos (0 # - + , . ) listados en la Tabla 1.

groupsep

Uno o más caracteres que deben utilizarse como separador entre grupos de enteros, para que los números grandes sean más fáciles de leer (separador de grupo). El separador de grupo por omisión no es nada (es decir, no se agrupan los dígitos ni se separan los grupos).

Normalmente la agrupación se realiza en miles, pero puede redefinirse tanto por el patrón como por el entorno local. Hay dos tamaños de grupo:
El tamaño de grupo primario
Se utiliza para los dígitos enteros menos significativos.
El tamaño de grupo secundario
Se utiliza para todos los demás dígitos enteros.
En la mayoría de casos, los tamaños de grupo primario y secundario son el mismo, pero pueden ser distintos. Por ejemplo, si el patrón utilizado es #,##,##0, el tamaño de grupo primario es 3 y el secundario 2. El número 123456789 pasaría a ser la serie "12,34,56,789".

Si se utilizan varios separadores de grupo (como en el ejemplo anterior), el separador más a la derecha define el tamaño primario y el penúltimo separador de la derecha define el tamaño secundario.

subpatrón

El subpatrón consta de :
  1. Un prefijo opcional (caracteres)
  2. Un patrón obligatorio que representa un número completo
  3. Un patrón opcional que representa los números decimales
  4. Un patrón opcional que representa un exponente (la potencia a la que se eleva el número precedente)
  5. Un sufijo opcional (caracteres)
Las partes 2, 3 y 4 del subpatrón están definidas por los símbolos en la tabla siguiente.
Tabla 1. Símbolos para definir un subpatrón de formato utilizado para las conversiones numéricas/serie de caracteres
Símbolo Representa
0 Cualquier dígito, incluido un cero al principio.
# Cualquier dígito, excepto un cero al principio. (Consulte la explicación de la diferencia entre 0 y # que hay después de esta tabla.)
. Separador decimal.
+ Prefijo de números positivos.
- Prefijo de números negativos.
, Separador de grupo.
E/e Separa el número del exponente.
; Extremo del subpatrón.
' Apóstrofo, se utiliza para los caracteres especiales. Si se necesita un apóstrofo en la salida, debe ponerse dos veces ('').
* Especificador de relleno. El carácter después del asterisco se utiliza para rellenar el número y ocupar toda la longitud del patrón del formato.

Los caracteres # y 0 se utilizan para la sustitución de dígitos; la diferencia entre ellos es que el carácter # se elimina si no hay ningún número con el que sustituirlo. Por ejemplo, 10 formateado por el patrón #,##0.00 genera "10.00", pero formateado por 0,000.00 genera "0,010.00".

Para especificar caracteres de relleno, utilice un asterisco. Cuando se coloca un asterisco en una de las dos regiones de caracteres (el prefijo y el sufijo), se utiliza el carácter siguiente para rellenar la salida. El relleno sólo se puede especificar una vez. Por ejemplo, el patrón *x#,###,##0.00 aplicado a 1234 generaría "xxx1,234.00". Aplicado a 1234567, generaría "1,234,567.00".

Ejemplos de patrones de formato

Tabla 2. Ejemplos de patrones de formato, mostrando las series de caracteres de salida, de una entrada numérica de ejemplo
Patrón Número de entrada Serie de salida
+###,##0.00;-###,###,##0.00:groupsep='':decsep=, 123456789.123 "+123'456'789,12"
##0.00 1000000 "1000000.00"
##0.00 3.14159265 "3.14"
Avisos | Marcas registradas | Descargas | Biblioteca | Soporte | Su opinión
Copyright IBM Corporation 1999, 2006 Última actualización: 22/08/2006
ak05615_