Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » PostgreSQL »

[SOLUCIONADO] formatear una NUMERIC

Estas en el tema de [SOLUCIONADO] formatear una NUMERIC en el foro de PostgreSQL en Foros del Web. La cuestión es la siguiente:Tengo una columna NUMERIC(12,0) que contiene actualmente valores desde 100000001 hasta el 100001234. Quiero deshacerme del primer 1 y conservar los ...
  #1 (permalink)  
Antiguo 12/04/2012, 06:26
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 16 años, 4 meses
Puntos: 41
[SOLUCIONADO] formatear una NUMERIC

La cuestión es la siguiente:Tengo una columna NUMERIC(12,0) que contiene actualmente valores desde 100000001 hasta el 100001234.
Quiero deshacerme del primer 1 y conservar los otros. Es decir que el valor máximo que quedaría en la columna sería 1234.
Una vez obtenido esto, cambiar la columna a NUMERIC(8,0).
No consigo hacer el casting, formateo para lograr esto.

Con esto desprecio el primer 1: (y hasta acá llego, no puedo avanzar mas)
Código SQL:
Ver original
  1. SUBSTRING(numero || '' FROM 2)
y después intento:
Código SQL:
Ver original
  1. to_numeric(SUBSTRING(numero || '' FROM 2) , '99999999')
también intenté
Código SQL:
Ver original
  1. CAST(SUBSTRING(numero || '' FROM 2)) AS INTEGER)
en ambos casos obtengo el siguiente error:
ERROR: la sintaxis de entrada no es válida para integer: «»

Si alguien me puede orientar un poco, porque ya me tiene podrido esto, es demasiado sencillo y no consigo continuar



SOLUCIONADO: había un valor, en la columna que contenía solo un 0, esto daba como resultado un substring VACÍO lo cual impedía el casteo intencionado
__________________
BadProgrammerException!

Última edición por FiruzzZ; 12/04/2012 a las 06:36
  #2 (permalink)  
Antiguo 20/04/2012, 12:07
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: [SOLUCIONADO] formatear una NUMERIC

Hola que tal, por que no utilizas el RIGHT

SELECT RIGHT('100001234',4) AS valor

Asi tomas el valor de los ultimos 4 digitos, siempre y cuando siempre sean 4, de lo contrario tu lo tendrias que mandar como un entero a la funcion:

SELECT RIGHT('100001234', nDigitosTomar) AS valor

Etiquetas: formatear, numeric
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:03.