Eliminar espacios finales y actualizar en columnas en SQL Server


147

Tengo espacios finales en una columna en una tabla de SQL Server llamada Company Name.

Todos los datos en esta columna tienen espacios finales.

Quiero eliminar todos esos, y quiero tener los datos sin espacios finales.

El nombre de la compañía es como "Amit Tech Corp "

Quiero que el nombre de la compañía sea "Amit Tech Corp"

Respuestas:


296

Tratar SELECT LTRIM(RTRIM('Amit Tech Corp '))

LTRIM - elimina los espacios iniciales del lado izquierdo de la cuerda

RTRIM - elimina cualquier espacio de la derecha

Ex:

update table set CompanyName = LTRIM(RTRIM(CompanyName))

12
Cabe señalar que TRIM ahora es un método compatible en SQL Server 2017+.
DJ Sipe

3
Estoy usando SQL Management Studio v17.8.1 y aunque obtengo Intellisense para la función TRIM, cuando lo ejecuto, dice que no es válido. Tuve que usar el código anterior. Extraño.
DesertFoxAZ

2
@DesertFoxAZ La versión de SQL Management Studio no es una versión de SQL Server
Jonatan Dragon

30

Para recortar los espacios finales, debe usar

UPDATE
    TableName
SET
    ColumnName = RTRIM(ColumnName)

Sin embargo, si desea recortar todos los espacios iniciales y finales, utilice esto

UPDATE
    TableName
SET
    ColumnName = LTRIM(RTRIM(ColumnName))

15

Bueno, aquí hay un buen script para RECORTAR todas las columnas varchar en una tabla dinámicamente:

--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


2

Use la función TRIM SQL.

Si está utilizando SQL Server, intente:

SELECT LTRIM(RTRIM(YourColumn)) FROM YourTable

2

SQL Server no admite la función Trim ().

Pero puede usar LTRIM () para eliminar espacios iniciales y RTRIM () para eliminar espacios finales.

puede usarlo como LTRIM (RTRIM (ColumnName)) para eliminar ambos.

update tablename
set ColumnName= LTRIM(RTRIM(ColumnName))

2

Si está utilizando SQL Server (comenzando con vNext) o Azure SQL Database , puede usar la siguiente consulta.

SELECT TRIM(ColumnName) from TableName;

Para otras bases de datos SQL SERVER puede usar la consulta a continuación.

SELECT LTRIM(RTRIM(ColumnName)) from TableName

LTRIM: elimina espacios de la izquierda

ejemplo: select LTRIM(' test ') as trim='test '

RTRIM: elimina espacios de la derecha

ejemplo: select RTRIM(' test ') as trim=' test'




0

Ejemplo:

SELECT TRIM('   Sample   ');

Resultado: 'Sample'

UPDATE TableName SET ColumnName = TRIM(ColumnName)

3
SQL Server no es compatible con la función Trim (). Pero puede usar LTRIM () y RTRIM (). Si desea usar ambos juntos, puede usar LTRIM (RTRIM (ColumnName))
Thilina Sandunsiri

Esta es una consulta de Oracle, OP está utilizando Microsoft SQL Server
Wouter

0
SELECT TRIM(ColumnName) FROM dual;

1
Esta es una consulta de Oracle, OP está utilizando Microsoft SQL Server
Wouter

0

Para eliminar Enter :

Update [table_name] set
[column_name]=Replace(REPLACE([column_name],CHAR(13),''),CHAR(10),'')

Para eliminar Tab :

Update [table_name] set
[column_name]=REPLACE([column_name],CHAR(9),'')

0

Si también queremos manejar espacios en blanco y pestañas no deseadas,

Verifique y pruebe el siguiente script ( Unidad probada ):

--Declaring
DECLARE @Tbl TABLE(col_1 VARCHAR(100));

--Test Samples
INSERT INTO @Tbl (col_1)
VALUES
('  EY     y            
Salem')
, ('  EY     P    ort       Chennai   ')
, ('  EY     Old           Park   ')
, ('  EY   ')
, ('  EY   ')
,(''),(null),('d                           
    f');

SELECT col_1 AS INPUT,
    LTRIM(RTRIM(
    REPLACE(
    REPLACE(
    REPLACE(
    REPLACE(
    REPLACE(
        REPLACE(
        REPLACE(
        REPLACE(
        REPLACE(
        REPLACE(
        REPLACE(col_1,CHAR(10),' ')
        ,CHAR(11),' ')
        ,CHAR(12),' ')
        ,CHAR(13),' ')
        ,CHAR(14),' ')
        ,CHAR(160),' ')
        ,CHAR(13)+CHAR(10),' ')
    ,CHAR(9),' ')
    ,' ',CHAR(17)+CHAR(18))
    ,CHAR(18)+CHAR(17),'')
    ,CHAR(17)+CHAR(18),' ')
    )) AS [OUTPUT]
FROM @Tbl;
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.