separar quitar por into espacios delimitada comas columns charindex cadena blanco sql sql-server string whitespace trim

quitar - sql server split string into rows



Elimine todos los espacios de una cadena en SQL Server (18)

100% de trabajo

UPDATE table_name SET "column_name"=replace("column_name", '' '', ''''); //Remove white space UPDATE table_name SET "column_name"=replace("column_name", ''/n'', ''''); //Remove newline UPDATE table_name SET "column_name"=replace("column_name", ''/t'', ''''); //Remove all tab

Puede usar "column_name" o column_name

Gracias

Subroto

¿Cuál es la mejor manera de eliminar todos los espacios de una cadena en SQL Server 2008?

LTRIM (RTRIM (''ab'') eliminaría todos los espacios a la derecha e izquierda de la cadena, pero también necesito eliminar el espacio en el medio.


En caso de que necesite copiar espacios en todas las columnas, podría usar esta secuencia de comandos para hacerlo de forma dinámica:

--Just change table name declare @MyTable varchar(100) set @MyTable = ''MyTable'' --temp table to get column names and a row id select column_name, ROW_NUMBER() OVER(ORDER BY column_name) as id into #tempcols from INFORMATION_SCHEMA.COLUMNS WHERE DATA_TYPE IN (''varchar'', ''nvarchar'') and TABLE_NAME = @MyTable declare @tri int select @tri = count(*) from #tempcols declare @i int select @i = 0 declare @trimmer nvarchar(max) declare @comma varchar(1) set @comma = '', '' --Build Update query select @trimmer = ''UPDATE [dbo].['' + @MyTable + ''] SET '' WHILE @i <= @tri BEGIN IF (@i = @tri) BEGIN set @comma = '''' END SELECT @trimmer = @trimmer + CHAR(10)+ ''['' + COLUMN_NAME + ''] = LTRIM(RTRIM(['' + COLUMN_NAME + '']))''+@comma FROM #tempcols where id = @i select @i = @i+1 END --execute the entire query EXEC sp_executesql @trimmer drop table #tempcols


Esto hace el truco de eliminar los espacios en las cadenas:

UPDATE tablename SET colunmname = replace(colunmname, '' '', '''');


Para completar todas las respuestas anteriores, hay publicaciones adicionales en sobre cómo tratar TODOS los espacios en blanco de los personajes (consulte https://en.wikipedia.org/wiki/Whitespace_character para obtener una lista completa de estos caracteres):


Para eliminar los espacios en una cadena de izquierda a derecha. Para eliminar espacio en el medio use Replace .

Puede usar RTRIM() para eliminar espacios de la derecha y LTRIM() para eliminar espacios de la izquierda, por lo tanto, los espacios izquierdo y derecho se eliminan de la siguiente manera:

SELECT * FROM table WHERE LTRIM(RTRIM(username)) = LTRIM(RTRIM("Bob alias baby"))


Si hay múltiples espacios en blanco en una cadena, entonces reemplazar puede no funcionar correctamente. Para eso, se debe usar la siguiente función.

CREATE FUNCTION RemoveAllSpaces ( @InputStr varchar(8000) ) RETURNS varchar(8000) AS BEGIN declare @ResultStr varchar(8000) set @ResultStr = @InputStr while charindex('' '', @ResultStr) > 0 set @ResultStr = replace(@InputStr, '' '', '''') return @ResultStr END

Ejemplo:

select dbo.RemoveAllSpaces(''aa aaa aa aa a'')

Salida:

aaaaaaaaaa


Si se trata de una actualización en una tabla, todo lo que tiene que hacer es ejecutar esta actualización varias veces hasta que afecte a 0 filas.

update tableName set colName = REPLACE(LTRIM(RTRIM(colName)), '' '', '' '') where colName like ''% %''


Simplemente reemplázalo;

SELECT REPLACE(fld_or_variable, '' '', '''')

Editar Solo para aclarar; es un reemplazo global, no hay necesidad de trim() o preocuparse por los espacios múltiples:

create table #t (c char(8), v varchar(8)) insert #t (c, v) values (''a a'' , ''a a'' ), (''a a '' , ''a a '' ), ('' a a'' , '' a a'' ), ('' a a '', '' a a '') select '''''''' + c + '''''''' [IN], '''''''' + replace(c, '' '', '''') + '''''''' [OUT] from #t union all select '''''''' + v + '''''''', '''''''' + replace(v, '' '', '''') + '''''''' from #t IN OUT ''a a '' ''aa'' ''a a '' ''aa'' '' a a '' ''aa'' '' a a '' ''aa'' ''a a'' ''aa'' ''a a '' ''aa'' '' a a'' ''aa'' '' a a '' ''aa''


Solo un consejo, en caso de que tenga problemas con la función de reemplazo, puede tener el tipo de datos establecido en nchar (en cuyo caso es una longitud fija y no funcionará).


Tuve este problema hoy y reemplazar / recortar hizo el truco ... ver abajo.

update table_foo set column_bar = REPLACE(LTRIM(RTRIM(column_bar)), '' '', '''')

antes y después de :

old-bad: column_bar | New-fixed: column_bar '' xyz '' | ''xyz'' '' xyz '' | ''xyz'' '' xyz '' | ''xyz'' '' xyz '' | ''xyz'' '' xyz '' | ''xyz'' '' xyz '' | ''xyz''


Yo usaría un REEMPLAZO

select REPLACE ('' Hello , How Are You ?'', '' '', '''' )

REPLACE


replace (replace (column_Name, CHAR (13), ''''), CHAR (10), '''')


si desea eliminar espacios, - y otro texto de una cadena, utilice lo siguiente:

supongamos que tiene un número de teléfono móvil en su Table como ''718-378-4957'' o ''7183784957'' y desea reemplazar y obtener el número de teléfono móvil y luego utilizar el siguiente texto.

select replace(replace(replace(replace(MobileNo,''-'',''''),''('',''''),'')'',''''),'' '','''') from EmployeeContactNumber

Resultado: - 7183784957


t-sql replace REPLACE

reemplazar (val, '''', '''')



esto es útil para mí:

CREATE FUNCTION dbo.TRIM(@String VARCHAR(MAX)) RETURNS VARCHAR(MAX) BEGIN RETURN LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@String,CHAR(10),''[]''),CHAR(13),''[]''),char(9),''[]''),CHAR(32),''[]''),'']['',''''),''[]'',CHAR(32)))); END GO

.


Referencia tomada de este blog:

Primero, crea una tabla de muestra y datos:

CREATE TABLE tbl_RemoveExtraSpaces ( Rno INT ,Name VARCHAR(100) ) GO INSERT INTO tbl_RemoveExtraSpaces VALUES (1,''I am Anvesh Patel'') INSERT INTO tbl_RemoveExtraSpaces VALUES (2,''Database Research and Development '') INSERT INTO tbl_RemoveExtraSpaces VALUES (3,''Database Administrator '') INSERT INTO tbl_RemoveExtraSpaces VALUES (4,''Learning BIGDATA and NOSQL '') GO

Secuencia de comandos para SELECCIONAR una cadena sin espacios extra:

SELECT [Rno] ,[Name] AS StringWithSpace ,LTRIM(RTRIM(REPLACE(REPLACE(REPLACE([Name],CHAR(32),''()''),'')('',''''),''()'',CHAR(32)))) AS StringWithoutSpace FROM tbl_RemoveExtraSpaces

Resultado:

Rno StringWithSpace StringWithoutSpace ----------- ----------------------------------------- --------------------------------------------- 1 I am Anvesh Patel I am Anvesh Patel 2 Database Research and Development Database Research and Development 3 Database Administrator Database Administrator 4 Learning BIGDATA and NOSQL Learning BIGDATA and NOSQL


Sintaxis para reemplazar un carácter específico:

REPLACE ( string_expression , string_pattern , string_replacement )

Por ejemplo, en la cadena "HelloReplaceThingsGoing" Reemplazar palabra se reemplaza por How

SELECT REPLACE(''HelloReplaceThingsGoing'',''Replace'',''How''); GO