none
Consulta a un campo tipo float (necesito eliminar el punto que separa enteros de decimales) para pasarlo a un texto plano RRS feed

  • Pregunta

  • Estimados

    Estoy realizando una consulta a un campo tipo float (necesito eliminar el punto que separa los enteros de los decimales) para pasarlo a un texto plano .txt y no se cual función utilizar.

    También me gustaría saber como se pueden concatenar el resultado de varios campos de un registro para que queden en un mismo registro sin espacios ni comas.

    Espero su respuesta.

    Saludos 

    viernes, 15 de julio de 2016 17:48

Respuestas

  • Yngwie Krimen,

    Entiendo.

    Respecto a la consulta sql, debes pasar como argumento de la función REPLACE() el valor calculado por la función SUM(), al parecer lo haces al revés:

    SELECT REPLACE(SUM(Impuesto), '.', '') FROM ResumenVentas


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Yngwie Krimen martes, 19 de julio de 2016 14:40
    lunes, 18 de julio de 2016 20:56

Todas las respuestas

  • tenes que usar en forma conjunta la funcion convert y replace.

    Seria alco asi replace(convert(varchar(50), ColumnaFlotante, ',','')


    Carlos Ignacio Aguero. DBA SQL Server. Toda mi respeto al pueblo Peruano por la ayuda prestada en la guerra de Malvinas.

    viernes, 15 de julio de 2016 18:04
  • Yngwie Krimen,

    ¿Tiene algún sentido unir la parte fraccionaria a la parte entera? No es lo mismo 350.52 que 35052, ambos son números diferentes. Te recomiendo que replantees lo que intentas realizar.

    Hacer lo que pides es simple, mas -reitero- no le veo el sentido

    DECLARE @Numero float = 152.23;
    SELECT REPLACE(@Numero, '.', '');

    Para el segundo caso puedes hacer uso de la función STUFF()

    DECLARE @Paises table (Pais varchar(100))
    INSERT INTO @Paises VALUES ('Colombia'), ('Ecuador'), ('Francia'), ('Venezuela');
    
    SELECT STUFF((SELECT Pais FROM @Paises FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(4000)'), 1, 0, '') Pais

    Resultado:


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios
    viernes, 15 de julio de 2016 23:41
  • Williams

    La query la realizo porque luego la paso a un archivo de texto plano (TXT) para que la valide un programa bancario, ese programa toma los numeros sin punto decimal, es decir para el ejemplo del importe 350.50 debo colocarlo como 35050 y automaticamente los dos ultimos numeros los reconoce como decimales, por esa razon no puedo incluir el punto decimal ya que al enviarlo al archivo me lo rebota el validador bancario.

    En el Select muestro el campo con SUM(impuesto) pero al no me permite agregar REPLACE al usar SUM 

    lunes, 18 de julio de 2016 20:34
  • Yngwie Krimen,

    Entiendo.

    Respecto a la consulta sql, debes pasar como argumento de la función REPLACE() el valor calculado por la función SUM(), al parecer lo haces al revés:

    SELECT REPLACE(SUM(Impuesto), '.', '') FROM ResumenVentas


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Yngwie Krimen martes, 19 de julio de 2016 14:40
    lunes, 18 de julio de 2016 20:56
  • Funciona perfecto.

    Muchas gracias Williams.

    Saludos 

    martes, 19 de julio de 2016 14:41