Principales respuestas
Quitar espacios en blancos en un campo SQL SERVER

Pregunta
-
Buenos dias expertos:
Tengo la siguiente consulta en SQL Server
SELECT LTRIM(RTRIM(cDescripcionArea)) AS cDescripcionArea FROM empleadoArea
Pero no suprime los campos en blancos(o tabulacion) que tiene al inicio.
También intenté con el siguiente código, pero no elimina los espacios en blanco o tabulacion.
update [dbo].[empleadoArea] set cDescripcionArea=replace(cDescripcionArea,' ', '')
Alguien ha solucionado este problema?
Saludos.
Respuestas
-
Hola,
LTRIM y RTRIM no siempre eliminan todos los espacios en blanco,n o podemos controlar siempre cómo se introducen los datos. Los datos podrían venir de otro sistema, una conversión de datos, una aplicación de edad, EDI, Excel, o desde una aplicación que tenía el control de mala calidad. En algunos de esos casos, un espacio en blanco no puede ser introducida o guardada en el sistema como el carácter 32 que es un espacio en blanco entrado en un teclado.
Para solucionarlo puedes usar la siguiente función:
CREATE FUNCTION [dbo].[udfTrim] ( @StringToClean as varchar(8000) ) RETURNS varchar(8000) AS BEGIN --Replace all non printing whitespace characers with Characer 32 whitespace --NULL Set @StringToClean = Replace(@StringToClean,CHAR(0),CHAR(32)); --Horizontal Tab Set @StringToClean = Replace(@StringToClean,CHAR(9),CHAR(32)); --Line Feed Set @StringToClean = Replace(@StringToClean,CHAR(10),CHAR(32)); --Vertical Tab Set @StringToClean = Replace(@StringToClean,CHAR(11),CHAR(32)); --Form Feed Set @StringToClean = Replace(@StringToClean,CHAR(12),CHAR(32)); --Carriage Return Set @StringToClean = Replace(@StringToClean,CHAR(13),CHAR(32)); --Column Break Set @StringToClean = Replace(@StringToClean,CHAR(14),CHAR(32)); --Non-breaking space Set @StringToClean = Replace(@StringToClean,CHAR(160),CHAR(32)); Set @StringToClean = LTRIM(RTRIM(@StringToClean)); Return @StringToClean END GO
Espero sea de tu ayuda.
- Propuesto como respuesta Luis Rojas Vásquez viernes, 21 de abril de 2017 15:32
- Marcado como respuesta ruyzz viernes, 21 de abril de 2017 15:33
Todas las respuestas
-
-
-
-
Hola,
LTRIM y RTRIM no siempre eliminan todos los espacios en blanco,n o podemos controlar siempre cómo se introducen los datos. Los datos podrían venir de otro sistema, una conversión de datos, una aplicación de edad, EDI, Excel, o desde una aplicación que tenía el control de mala calidad. En algunos de esos casos, un espacio en blanco no puede ser introducida o guardada en el sistema como el carácter 32 que es un espacio en blanco entrado en un teclado.
Para solucionarlo puedes usar la siguiente función:
CREATE FUNCTION [dbo].[udfTrim] ( @StringToClean as varchar(8000) ) RETURNS varchar(8000) AS BEGIN --Replace all non printing whitespace characers with Characer 32 whitespace --NULL Set @StringToClean = Replace(@StringToClean,CHAR(0),CHAR(32)); --Horizontal Tab Set @StringToClean = Replace(@StringToClean,CHAR(9),CHAR(32)); --Line Feed Set @StringToClean = Replace(@StringToClean,CHAR(10),CHAR(32)); --Vertical Tab Set @StringToClean = Replace(@StringToClean,CHAR(11),CHAR(32)); --Form Feed Set @StringToClean = Replace(@StringToClean,CHAR(12),CHAR(32)); --Carriage Return Set @StringToClean = Replace(@StringToClean,CHAR(13),CHAR(32)); --Column Break Set @StringToClean = Replace(@StringToClean,CHAR(14),CHAR(32)); --Non-breaking space Set @StringToClean = Replace(@StringToClean,CHAR(160),CHAR(32)); Set @StringToClean = LTRIM(RTRIM(@StringToClean)); Return @StringToClean END GO
Espero sea de tu ayuda.
- Propuesto como respuesta Luis Rojas Vásquez viernes, 21 de abril de 2017 15:32
- Marcado como respuesta ruyzz viernes, 21 de abril de 2017 15:33
-
Gracias por responder ajunto imagen donde no realiza el cambio.
Saluos.
- Propuesto como respuesta CastanedaVE martes, 23 de enero de 2018 15:40
-
-
-
-