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

Sacar 0 delante de un entero

Estas en el tema de Sacar 0 delante de un entero en el foro de Bases de Datos General en Foros del Web. Hola a todos, ¿Sabeis alguna forma de sacar en una consulta los nº del 1 al 9 con un cero delante? para que salga 01, ...
  #1 (permalink)  
Antiguo 26/07/2008, 04:42
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años, 6 meses
Puntos: 3
Sacar 0 delante de un entero

Hola a todos,

¿Sabeis alguna forma de sacar en una consulta los nº del 1 al 9 con un cero delante?
para que salga 01, 02, 03, 04,... porque ahora al ser un campo int sale solo 1,2,3,4,...

Gracias Adelantadas
  #2 (permalink)  
Antiguo 27/07/2008, 09:05
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Sacar 0 delante de un entero

No has dicho la base que usas. Yo en MysQL probaría para el campo que es de tipo int y se llama campo1

SELECT CONCAT('0',CAST(campo1 AS CHAR)) AS numeroconcero FROM tutabla
  #3 (permalink)  
Antiguo 27/07/2008, 11:15
 
Fecha de Ingreso: julio-2008
Ubicación: Hermosillo, Sonora
Mensajes: 95
Antigüedad: 16 años, 4 meses
Puntos: 3
De acuerdo Respuesta: Sacar 0 delante de un entero

Lo que dice Jurena funcionaria perfectamente del 1 al 9, pero imagina que luego necesitas crecer la mantiza de 2 a 10, por ejemplo para tener 005401, entonces se te complica la cosa, no???

Bueno, para el primer punto en SQLServer funcionan tanto CAST como CONVERT

Ahora para el segundo punto y tener una mantiza variable, lo que yo haría es hacer una funcion (si el motor lo soporta) para que te devuleva el dato ya formateado y en esa funcion pones todo el codigo necesario y la consulta sería de la siguiente manera:

select numero = dbo.fnRellenaCeros(numeroX)


Saludos...
  #4 (permalink)  
Antiguo 27/07/2008, 15:35
 
Fecha de Ingreso: abril-2003
Mensajes: 363
Antigüedad: 21 años, 6 meses
Puntos: 3
Respuesta: Sacar 0 delante de un entero

Perfecto!!

Muchas Gracias
  #5 (permalink)  
Antiguo 28/07/2008, 08:03
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Sacar 0 delante de un entero

si necesitas un número determinado de dígitos y un relleno con ceros para MySQL, te recomiendo esto, sin cast a char. Por ejemplo para rellenar hasta 12 dígitos:

SELECT CONCAT( REPEAT( '0', 12 - LENGTH( camponumerico) ) , camponumerico)
FROM nombretutabla

Última edición por jurena; 28/07/2008 a las 13:53
  #6 (permalink)  
Antiguo 28/07/2008, 09:03
 
Fecha de Ingreso: julio-2008
Ubicación: Hermosillo, Sonora
Mensajes: 95
Antigüedad: 16 años, 4 meses
Puntos: 3
Respuesta: Sacar 0 delante de un entero

Creo que esta sería mejor solución que la funcion
  #7 (permalink)  
Antiguo 29/07/2008, 07:13
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Sacar 0 delante de un entero

Hay otra posibilidad, aunque esta sólo afecta a los datos guardados en un registro. Me refiero a poner la característica de zerofill al campo numérico. Te rellenará el campo con ceros a la izquierda. Pero eso sólo funcionará con datos guardados y no con datos procedentes de operaciones y que sólo quieras mostrar. La sintaxis para modificar añadiendo esa característica a un camponumerico que ya existe pero no la tiene, sería algo así:

ALTER TABLE tutabla MODIFY camponumerico int( 12 ) zerofill

Última edición por jurena; 30/07/2008 a las 01:51
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 14:32.