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

J’ai des espaces de fin dans une colonne dans 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 de fin.

Le nom de la société est comme "Amit Tech Corp "

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

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

LTRIM – supprime les espaces de LTRIM du côté gauche de la chaîne

RTRIM – supprime tous les espaces de droite

Ex:

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

Pour ne rogner que les espaces de fin, vous devez utiliser

 UPDATE TableName SET ColumnName = RTRIM(ColumnName) 

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

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

Eh bien voici un bon script pour parsingr toutes les colonnes varchar sur une table dynamicment:

 --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 @sorting int select @sorting = count(*) from #tempcols declare @i int select @i = 0 declare @sortingmmer nvarchar(max) declare @comma varchar(1) set @comma = ', ' --Build Update query select @sortingmmer = '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 
 update MyTable set CompanyName = rsortingm(CompanyName) 

Si vous utilisez SQL Server (à partir de vNext) ou Azure SQL Database, vous pouvez utiliser la requête ci-dessous.

 SELECT TRIM(ColumnName) from TableName; 

Pour toute autre firebase database SQL SERVER, vous pouvez utiliser la requête ci-dessous.

 SELECT LTRIM(RTRIM(ColumnName)) from TableName 

LTRIM – Supprime les espaces à gauche

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

RTRIM – Supprime les espaces à droite

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

Utilisez la fonction SQL TRIM .

Si vous utilisez SQL Server, essayez:

 SELECT LTRIM(RTRIM(YourColumn)) FROM YourTable 

J’ai eu le même problème après l’extraction des données du fichier Excel à l’aide d’ETL et finalement j’ai trouvé la solution:

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

J’espère que cela aide 😉

Eh bien, 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 les autres versions, vous devez utiliser set CompanyName = LTRIM(RTRIM(CompanyName))

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 comme LTRIM (RTRIM (ColumnName)) pour supprimer les deux.

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

Exemple:

 SELECT TRIM(' Sample '); 

Résultat: 'Sample'

 UPDATE TableName SET ColumnName = TRIM(ColumnName) 
 SELECT TRIM(ColumnName) FROM dual; 

La meilleure façon de supprimer tous les espaces est SELECT REPLACE (“Amit Tech Corp”, “”)

Au lieu de LTRIM & RTRIM