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
| |||
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 |
| |||
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 |
| |||
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... |
| |||
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 |
| |||
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 |