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''
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, '''', '''')
REPLACE(field, '' '', '''')
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