Ответ 1
Try
SELECT LTRIM(RTRIM('Amit Tech Corp '))
LTRIM
- удаляет все ведущие пробелы с левой стороны строки
RTRIM
- удаляет любые пробелы справа
Пример:
update table set CompanyName = LTRIM(RTRIM(CompanyName))
У меня есть пробелы в столбце в таблице SQL Server с именем Company Name
.
Все данные в этом столбце имеют завершающие пробелы.
Я хочу удалить все эти данные, и я хочу иметь данные без каких-либо конечных пробелов.
Название компании похоже на "Amit Tech Corp "
Я хочу, чтобы название компании было "Amit Tech Corp"
Try
SELECT LTRIM(RTRIM('Amit Tech Corp '))
LTRIM
- удаляет все ведущие пробелы с левой стороны строки
RTRIM
- удаляет любые пробелы справа
Пример:
update table set CompanyName = LTRIM(RTRIM(CompanyName))
Чтобы просто обрезать конечные пробелы, вы должны использовать
UPDATE
TableName
SET
ColumnName = RTRIM(ColumnName)
Однако, если вы хотите обрезать все начальные и конечные пробелы, используйте этот
UPDATE
TableName
SET
ColumnName = LTRIM(RTRIM(ColumnName))
Ну вот хороший script для TRIM всех столбцов 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 + ']))'[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)
Если вы используете SQL Server (начиная с vNext) или Azure SQL Database, вы можете использовать следующий запрос.
SELECT TRIM(ColumnName) from TableName;
Для других SQL SERVER Database вы можете использовать следующий запрос.
SELECT LTRIM(RTRIM(ColumnName)) from TableName
LTRIM - Удаляет пробелы слева
пример: select LTRIM(' test ') as trim
= 'test '
RTRIM - Удаляет пробелы справа
пример: select RTRIM(' test ') as trim
= ' test'
Используйте TRIM функцию SQL.
Если вы используете SQL Server, попробуйте:
SELECT LTRIM(RTRIM(YourColumn)) FROM YourTable
Ну, это зависит от того, какую версию 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))
У меня была такая же проблема после извлечения данных из файла excel с использованием ETL и, наконец, я нашел там решение:
https://www.codeproject.com/Tips/330787/LTRIM-RTRIM-doesn-t-always-work
надеюсь, что это поможет;)
SELECT TRIM (ColumnName) FROM dual;
Пример:
SELECT TRIM(' Sample ');
Результат: 'Sample'
UPDATE TableName SET ColumnName = TRIM(ColumnName)
Лучший способ удалить все пробелы SELECT REPLACE ( "Amit Tech Corp", '', '')
Вместо LTRIM и RTRIM