Agregar punto decimal

03/12/2005 - 18:00 por Erick Sanchez | Informe spam
Buenas tardes mi pregunta es la siguiente cual seria la forma de agregarle
punto decimales a valores numericos que no lo traen por medio de un update
en sql. por ejemplo

tengo 20 mil valores numericos todos de diferentes denominacionaes
120000 10000000 52300 1000 156585

como ven me agrega los ceros pero el punto hace falta y eso afecta la
sumatoria. desearia convertirlo a esto

1200.00 100000.00 523.00 10.00 1565.85

les agradeceria su ayuda

Preguntas similare

Leer las respuestas

#6 Camilo Acosta
05/12/2005 - 16:38 | Informe spam
Toda la razón, yo me referia realmente a la escala...

"Alejandro Mesa" escribió en el
mensaje news:
Camilo,

La precision son la cantidad de digitos en total (izquierda + derecha del
punto decimal). La escala es la cantidad de digitos despues del punto.

numeric(p, s)

Cuando la respuesta de Erick, a la pregunta hecha por Maximiliano, fue
numeric 9, por lo que supongo que sea numeric(9, 0). Por lo que no importa
la
operacion que hagas, el resultado almacenado en la columna no tendra
decimales.

select cast(cast(120000 as numeric(9, 0)) / 100 as numeric(9, 0))

Asi que si Erick desea guardar decimales en esa columna, tendra que
cambiar
la escala.

select cast(cast(120000 as numeric(9, 0)) / 100 as numeric(9, 2))


AMB

"Camilo Acosta" wrote:

Solo tienes que fijarte que la columna que uses este definida como
numeric o
decimal(son el mismo tipo de datos), y que la presicion (datos despues
del
punto decimal) este definida de acuerdo al numero de decimales que deseas
manejar 2, 3, etc.

Luego seria tan solo hacer un update a la columna sobre si misma
dividiendo
por 100.

UPDATE tuTabla set Valor = Valor / 100

Saludos,

Camilo Acosta


"Erick Sanchez" escribió en el mensaje
news:uq9XXsC%
> Buenas tardes mi pregunta es la siguiente cual seria la forma de
> agregarle
> punto decimales a valores numericos que no lo traen por medio de un
> update
> en sql. por ejemplo
>
> tengo 20 mil valores numericos todos de diferentes denominacionaes
> 120000 10000000 52300 1000 156585
>
> como ven me agrega los ceros pero el punto hace falta y eso afecta la
> sumatoria. desearia convertirlo a esto
>
> 1200.00 100000.00 523.00 10.00 1565.85
>
> les agradeceria su ayuda
>
>



Respuesta Responder a este mensaje
#7 jsanchez
05/12/2005 - 18:05 | Informe spam
Una opción sería dividir el valor por 100
así
120000 quedaría como 1200.00
podría ser algo así:
update tabla set campo=cast(isnull(campo,0) as decimal(18,2)) / 100
Ten en cuenta que hay que pasar a decimal el valor con cast porque si SQL
considera que se trata de un integer no cargará los decimales
si no quieres hacer el cast prueba con:
update tabla set campo=isnull(campo,0) / 100.00
Al indicar 100.00 (con decimales) SQL hará la conversión
Ponemos lo de isnull porque si hay valores null tendríamos un error al
dividir.

Otra opción sería tratarlo como texto y quitar el substring de la cadena
menos dos digitos de la derecha, luego añadir el punto y añadir los dos de la
derecha
ejemplo:

select left('12340000',len('12340000')-2) + '.' + right('12340000',2)

update tabla set campo= left(cast(campo as varchar(50)),len(campo)-2) + '.'
+ right(cast(campo as varchar(50)),2) where isnull(campo,'')<>''

Aquí podría haber problemas si hay valores con menos de tres dígitos...
para solucionarlo:
update tabla set campo= left(cast('000' as varchar(50)) + cast(campo as
varchar(50)),len(cast('000' as varchar(50)) + cast(campo as varchar(50)))-2)
+ '.' + right(cast('000' as varchar(50)) + cast(campo as varchar(50)),2)
where isnull(campo,'')<>''

un saludo,
Jose






"Erick Sanchez" escribió:

Buenas tardes mi pregunta es la siguiente cual seria la forma de agregarle
punto decimales a valores numericos que no lo traen por medio de un update
en sql. por ejemplo

tengo 20 mil valores numericos todos de diferentes denominacionaes
120000 10000000 52300 1000 156585

como ven me agrega los ceros pero el punto hace falta y eso afecta la
sumatoria. desearia convertirlo a esto

1200.00 100000.00 523.00 10.00 1565.85

les agradeceria su ayuda



Respuesta Responder a este mensaje
#8 Erick Sanchez
05/12/2005 - 21:46 | Informe spam
En realidad los valores estan seteados como numeric 18,0 pero siguiendo el
consejo de Maxi le puse Numeric 18,2 pero lo que paso fue lo siguiente el
valor por ejemplo 200000 (DOCIENTOS MIL ) es realmente dosmil al cambiar el
formato a decimal 18,2 simplemente me lo dejo igual solo que le agrego los 2
ceros y el decimal o sea que quedo 200000.00
voy a probar con el metodo del cast

Gracias
"Erick Sanchez" escribió en el mensaje
news:uq9XXsC%
Buenas tardes mi pregunta es la siguiente cual seria la forma de agregarle
punto decimales a valores numericos que no lo traen por medio de un update
en sql. por ejemplo

tengo 20 mil valores numericos todos de diferentes denominacionaes
120000 10000000 52300 1000 156585

como ven me agrega los ceros pero el punto hace falta y eso afecta la
sumatoria. desearia convertirlo a esto

1200.00 100000.00 523.00 10.00 1565.85

les agradeceria su ayuda


Respuesta Responder a este mensaje
#9 Alejandro Mesa
06/12/2005 - 17:06 | Informe spam
Erick,

Si la columna es de tipo numeric(18, 2) entonces lo unico que te queda es
dividir la columna por 100.00.

update tu_tabla
set tu_columna = tu_columna / 100.00


AMB

"Erick Sanchez" wrote:

En realidad los valores estan seteados como numeric 18,0 pero siguiendo el
consejo de Maxi le puse Numeric 18,2 pero lo que paso fue lo siguiente el
valor por ejemplo 200000 (DOCIENTOS MIL ) es realmente dosmil al cambiar el
formato a decimal 18,2 simplemente me lo dejo igual solo que le agrego los 2
ceros y el decimal o sea que quedo 200000.00
voy a probar con el metodo del cast

Gracias
"Erick Sanchez" escribió en el mensaje
news:uq9XXsC%
> Buenas tardes mi pregunta es la siguiente cual seria la forma de agregarle
> punto decimales a valores numericos que no lo traen por medio de un update
> en sql. por ejemplo
>
> tengo 20 mil valores numericos todos de diferentes denominacionaes
> 120000 10000000 52300 1000 156585
>
> como ven me agrega los ceros pero el punto hace falta y eso afecta la
> sumatoria. desearia convertirlo a esto
>
> 1200.00 100000.00 523.00 10.00 1565.85
>
> les agradeceria su ayuda
>
>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida