web-dev-qa-db-fra.com

Supprimer les espaces de fin et mettre à jour dans les colonnes dans SQL Server

J'ai des espaces de fin dans une colonne d'une table SQL Server appelée Company Name.

Toutes les données de cette colonne ont des espaces de fin.

Je veux supprimer tous ceux-ci, et je veux avoir les données sans espaces finaux.

Le nom de l'entreprise est comme "Amit Tech Corp "

Je veux que le nom de l'entreprise soit "Amit Tech Corp"

112
AGM Raja

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

LTRIM - supprime les espaces de début du côté gauche de la chaîne

RTRIM - supprime les espaces de droite

Ex: 

update table set CompanyName = LTRIM(RTRIM(CompanyName))
249
rs.

Pour couper uniquement les espaces de fin, vous devez utiliser

UPDATE
    TableName
SET
    ColumnName = RTRIM(ColumnName)

Toutefois, si vous souhaitez supprimer tous les espaces de début et de fin, utilisez cette option.

UPDATE
    TableName
SET
    ColumnName = LTRIM(RTRIM(ColumnName))
25
Robin Day

Voici un bon script pour TRIMER dynamiquement toutes les colonnes varchar d’une table:

--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
14
Hiram
update MyTable set CompanyName = rtrim(CompanyName)
7
Christoffer Lette

Si vous utilisez SQL Server (commençant par vNext) ou Azure SQL Database , vous pouvez utiliser la requête ci-dessous.

SELECT TRIM(ColumnName) from TableName;

Pour les autres Base de données SQL SERVER vous pouvez utiliser la requête ci-dessous.

SELECT LTRIM(RTRIM(ColumnName)) from TableName

LTRIM - Supprime les espaces de la gauche

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

RTRIM - Supprime les espaces de la droite

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

2
Sukanta Saha

J'ai eu le même problème après avoir extrait les données d'un fichier Excel avec ETL .__ et j'ai finalement trouvé la solution:

https://www.codeproject.com/Tips/330787/LTRIM-RTRIM-doesn-t-always-work

j'espère que ça aide ;) 

1
Salim Lyoussi

Utilisez la fonction TRIM SQL.

Si vous utilisez SQL Server, essayez: 

SELECT LTRIM(RTRIM(YourColumn)) FROM YourTable
1
Simon

SQL Server ne prend pas en charge la fonction Trim (). 

Mais vous pouvez utiliser LTRIM () pour supprimer les espaces de début et RTRIM () pour supprimer les espaces de fin.

peut l’utiliser en tant que LTRIM (RTRIM (ColumnName)) pour supprimer les deux.

update tablename
set ColumnName= LTRIM(RTRIM(ColumnName))
0
Thilina Sandunsiri

Exemple:

SELECT TRIM('   Sample   ');

Résultat: 'Sample'

UPDATE TableName SET ColumnName = TRIM(ColumnName)
0
pritam

Pour supprimer Entrez :

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

Pour supprimer Tab :

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

Cela dépend de la version de SQL Server que vous utilisez.

Dans SQL Server 2008 R2, 2012 et 2014, vous pouvez simplement utiliser TRIM(CompanyName)

Fonction SQL Server TRIM

Dans d'autres versions, vous devez utiliser set CompanyName = LTRIM(RTRIM(CompanyName))

0
Daniel Urdaneta
SELECT TRIM(ColumnName) FROM dual;
0
shevin