 |
|
 |
Formatear números en SQL Server
Una duda que suele tener la gente es como formatear los datos numérico es SQL Server - Es bastante común tener que formatear un número completando con ceros hasta un número determinado de posiciones.
Podemos hacer un bucle para concatenar la expresion resultante, pero no parece ni mucho menos la opción mas adecuada.
El siguiente script ilustra una forma más eficiente de conseguir el mismo resultado.
DECLARE
@num int, @formato varchar(10), @expresion varchar(10) SET @formato = '0000000000'SET @num = 2002SET @expresion = RIGHT( @formato + cast(@num AS varchar), 10)SELECT @expresion |
La idea es concatenar una expresion de formato fijo - los ceros - con el número a formatear. Posteriormente utilizamos la función RIGHT para recortar los n elementos de la derecha.
La salida de la ejecucion es la siguiente:
DATO_FORMATEADO --------------- 0000002002
|
Como podemos ver, hemos conseguido nuestro objetivo. Por supuesto, este truco es válido también para completar con espacios en blanco - muy util para obtener ficheros de ancho fijo - o cualquier otro tipo de caracter.
Podemos hacer las cosas un poco mejor, y creamos una funcion a la que le pasaremos el número a formatear y el formato de salida.
CREATE FUNCTION dbo.FormatNum( @number int, @format varchar(50)) RETURNS varchar(50) AS BEGIN DECLARE @len int SET @len = len(@format) RETURN RIGHT( @format + cast(@number AS varchar), @len)END
|
Sobre una supuesta tabla Pais, que hemos cargado previamente con cinco registros - con el código autonumérico - ejecutamos la siguiente consulta:
SELECT
dbo .FormatNum(CodPais,'000000000000') AS CodPais, NombrePais , Activo FROM Pais
|
El resultado de la consulta es el siguiente:
CodPais NombrePais Activo ----------------- -------------- ------ 000000000001 Pais 0 0 000000000002 Pais 1 0 000000000003 Pais 2 0 000000000004 Pais 3 0 000000000005 Pais 4 0
|
Saludos, DJK |
| Añadir comentario ... |
Para preguntar utiliza los foros
|
|

|
Formatear números en SQL Server |
|
Autor:
Pedro Herrarte Sánchez
|
|
Visitas:
9756 |
Fecha de publicación:
03/06/2008 |
Pedro Herrarte, es consultor independiente, ofreciendo servicios de consultoría, análisis, desarrollo y formación.
Posee mas de diez años de experiencia trabajando para las principales empresas de España.
Es especialista en tecnologías .NET, entornos Web, bases de datos (SQL Server y ORACLE) e integración de sistemas.
Es experto en desarrollo (C#, ASP.NET, VB.Net, T-SQL, PL/SQL, , ASP, CGI , C, Pro*C, Java, Essbase, Vignette, PowerBuilder y Visual Basic ...) y bases de datos (SQL Server y ORACLE).
Es fundador, diseñador y programador de www.devjoker.com. |
|
|
Visitas:
110
|
Comentarios:
3
|
Archivo:
Articulos
|
Visitas:
809
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
765
|
Comentarios:
3
|
Archivo:
Articulos
|
Visitas:
672
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
3181
|
Comentarios:
2
|
Archivo:
Articulos
|
Visitas:
14566
|
Comentarios:
7
|
Archivo:
Articulos
|
Visitas:
1499
|
Comentarios:
3
|
Archivo:
Articulos
|
|
Visitas:
695
|
Comentarios:
2
|
Archivo:
Articulos
|
|
Visitas:
369
|
Comentarios:
0
|
Archivo:
Articulos
|
Visitas:
2034
|
Comentarios:
2
|
Archivo:
Articulos
|
|
|
 |
|
 |