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),''''))