Ich habe nachgestellte Leerzeichen in einer Spalte in einer SQL Server-Tabelle mit dem Namen Company Name
.
Alle Daten in dieser Spalte enthalten Leerzeichen.
Ich möchte alle entfernen und die Daten ohne Leerzeichen haben.
Der Firmenname ist wie "Amit Tech Corp "
Ich möchte, dass der Firmenname "Amit Tech Corp"
ist.
Um nur nachstehende Leerzeichen zu trimmen, sollten Sie diese verwenden
UPDATE
TableName
SET
ColumnName = RTRIM(ColumnName)
Wenn Sie jedoch alle führenden und nachfolgenden Leerzeichen trimmen möchten, verwenden Sie diese Option
UPDATE
TableName
SET
ColumnName = LTRIM(RTRIM(ColumnName))
Nun, hier ist ein Nizza-Skript, um alle varchar-Spalten in einer Tabelle dynamisch zu TRIMMEN:
--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 + ']))'[email protected]
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)
Wenn Sie SQL Server (beginnend mit vNext) oder Azure SQL-Datenbank verwenden, können Sie die folgende Abfrage verwenden.
SELECT TRIM(ColumnName) from TableName;
Für andere SQL SERVER-Datenbanken können Sie die folgende Abfrage verwenden.
SELECT LTRIM(RTRIM(ColumnName)) from TableName
LTRIM - Entfernt Leerzeichen von links
beispiel: select LTRIM(' test ') as trim
= 'test '
RTRIM - Entfernt Leerzeichen von rechts
beispiel: select RTRIM(' test ') as trim
= ' test'
Ich hatte das gleiche Problem nach dem Extrahieren von Daten aus einer Excel-Datei mit ETL
https://www.codeproject.com/Tips/330787/LTRIM-RTRIM-doesn-t-always-work
ich hoffe es hilft ;)
Verwenden Sie die Funktion TRIM SQL.
Wenn Sie SQL Server verwenden, versuchen Sie Folgendes:
SELECT LTRIM(RTRIM(YourColumn)) FROM YourTable
SQL Server unterstützt die Trim () - Funktion nicht.
Sie können jedoch LTRIM () verwenden, um führende Leerzeichen zu entfernen, und RTRIM (), um nachfolgende Leerzeichen zu entfernen.
kann es als LTRIM (RTRIM (ColumnName)) verwenden, um beide zu entfernen.
update tablename
set ColumnName= LTRIM(RTRIM(ColumnName))
Beispiel:
SELECT TRIM(' Sample ');
Ergebnis: 'Sample'
UPDATE TableName SET ColumnName = TRIM(ColumnName)
Enter entfernen:
Update [table_name] set
[column_name]=Replace(REPLACE([column_name],CHAR(13),''),CHAR(10),'')
Tab entfernen:
Update [table_name] set
[column_name]=REPLACE([column_name],CHAR(9),'')
Nun, es hängt davon ab, welche Version von SQL Server Sie verwenden.
In SQL Server 2008 r2, 2012 und 2014 können Sie einfach TRIM(CompanyName)
verwenden.
In anderen Versionen müssen Sie set CompanyName = LTRIM(RTRIM(CompanyName))
verwenden.
SELECT TRIM(ColumnName) FROM dual;