Удаление конечных пробелов и обновление столбцов в SQL Server
у меня есть конечные пробелы в столбце в таблице SQL Server под названием Company Name.
все данные в этом столбце имеют конечные пробелы.
Я хочу удалить все это, и я хочу иметь данные без каких-либо конечных пробелов.
название компании, как "Amit Tech Corp "
Я хочу, чтобы название компании было "Amit Tech Corp"
13 ответов:
только пробелы, вы должны использовать
UPDATE TableName SET ColumnName = RTRIM(ColumnName)однако, если вы хотите обрезать все начальные и конечные пробелы, то используйте это
UPDATE TableName SET ColumnName = LTRIM(RTRIM(ColumnName))
Ну вот хороший скрипт для динамической обрезки всех столбцов varchar в таблице:
--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
если вы используете SQL Server (начиная с vNext) или база данных SQL Azure затем вы можете использовать следующий запрос.
SELECT TRIM(ColumnName) from TableName;другие база данных SQL SERVER вы можете использовать следующий запрос.
SELECT LTRIM(RTRIM(ColumnName)) from TableNameLTRIM-удаляет пробелы слева
пример:
select LTRIM(' test ') as trim='test 'RTRIM-удаляет пробелы справа
пример:
select RTRIM(' test ') as trim=' test'
использовать отделка функции SQL.
Если вы используете SQL Server попробуйте:
SELECT LTRIM(RTRIM(YourColumn)) FROM YourTable
У меня была такая же проблема после извлечения данных из файла Excel с помощью ETL и наконец я нашел решение здесь :
https://www.codeproject.com/Tips/330787/LTRIM-RTRIM-doesn-t-always-work
надеюсь, что это помогает ;)
Ну, это зависит от того, какую версию SQL Server вы используете.
в SQL Server 2008 r2, 2012 и 2014 вы можете просто использовать
TRIM(CompanyName)в других версиях вы должны использовать
set CompanyName = LTRIM(RTRIM(CompanyName))
SQL Server не поддерживает функцию Trim ().
но вы можете использовать LTRIM() для удаления начальных пробелов и RTRIM() для удаления конечных пробелов.
можно использовать его как LTRIM(RTRIM(ColumnName)) для удаления обоих.
update tablename set ColumnName= LTRIM(RTRIM(ColumnName))
удалить введите:
Update [table_name] set [column_name]=Replace(REPLACE([column_name],CHAR(13),''),CHAR(10),'')удалить Tab:
Update [table_name] set [column_name]=REPLACE([column_name],CHAR(9),'')
пример:
SELECT TRIM(' Sample ');результат:
'Sample'UPDATE TableName SET ColumnName = TRIM(ColumnName)
лучший способ удалить все пробелы выберите заменить ("Amit Tech Corp",'',")
а не помните & функция rtrim
Comments