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"
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))
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
update MyTable set CompanyName = rtrim(CompanyName)
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'
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 ;)
Utilisez la fonction TRIM SQL.
Si vous utilisez SQL Server, essayez:
SELECT LTRIM(RTRIM(YourColumn)) FROM YourTable
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))
Exemple:
SELECT TRIM(' Sample ');
Résultat: 'Sample'
UPDATE TableName SET ColumnName = TRIM(ColumnName)
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),'')
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)
Dans d'autres versions, vous devez utiliser set CompanyName = LTRIM(RTRIM(CompanyName))
SELECT TRIM(ColumnName) FROM dual;