quitar intermedios espacios blanco sql-server string tsql replace sql-server-2012

sql server - intermedios - Cómo eliminar espacios en blanco en una columna de cadena



quitar espacios en blanco intermedios sql (4)

Gracias a los datos de muestra de gofr1. Este método SÓLO eliminará las líneas de sastre. Probado, funciona perfecto en SSMS. :)

declare @text nvarchar(max) = ''first row second row third row '' print ''--Before--'' print @text print ''--End'' --It will delete only the tailor lines. set @text = reverse(stuff(reverse(@text),1,patindex(''%''+char(13)+''[^''+char(10)+'']%'',reverse(@text)),'''')) print ''--After'' print @text print ''--End''

Resultado

Tengo una columna nvarchar(2000) que puede almacenar un texto largo como el siguiente

Hay muchas filas en blanco al final del texto. ¿Hay alguna manera de eliminar estas filas en blanco ( char(10) )?

Usar replace(column,char(10),'''') no es aceptable. No quiero estropear el contenido de arriba. ¿Cómo eliminar estos caracteres (10) solo al final del texto?

Estoy usando SQL Server 2012.

¡¡¡Muchas gracias!!!


Utilice RTRIM y LTRIM para su consulta de selección en SQL Por ejemplo

seleccione RTRIM (LTRIM (''j'')) AS Columna1

o si desea usar el ajuste en su formulario web. Puede usar una cadena de escritura de evento con datos usando Str.Trim ();


Declare @String nvarchar(2000) = ''Row 1 with some text Row 2 with some other text '' Select reverse(substring(Reverse(@String),patindex(''%[0-z]%'',Reverse(@String)),2000))+char(13)+char(10)

Devoluciones

Row 1 with some text Row 2 with some other text


Puede reemplazar CHAR(10)+CHAR(13) con una cadena vacía:

declare @text nvarchar(max) = ''first row second row third row '' print ''--Before--'' print @text print ''--End'' select @text = REPLACE(@text,CHAR(10)+CHAR(13),'''') --10 and 13, not 13 and 10! print ''--After'' print @text print ''--End''

Te regalaré:

--Before-- first row second row third row --End --After first row second row third row --End

En la parte anterior hay 3 filas vacías

EDITAR

Si cada fila vacía tiene espacio (s), cambie los caracteres en la instrucción REEMPLAZAR y añada RTRIM para cortar los espacios que quedan:

select @text = RTRIM(REPLACE(@text,CHAR(32)+CHAR(13)+CHAR(10),''''))