Удаление промежуточных пространств и обновление в столбцах в SQL Server

У меня есть пробелы в столбце в таблице SQL Server с именем Company Name.

Все данные в этом столбце имеют завершающие пробелы.

Я хочу удалить все эти данные, и я хочу иметь данные без каких-либо конечных пробелов.

Название компании похоже на "Amit Tech Corp "

Я хочу, чтобы название компании было "Amit Tech Corp"

Ответ 1

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

LTRIM - удаляет все ведущие пробелы с левой стороны строки

RTRIM - удаляет любые пробелы справа

Пример:

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

Ответ 2

Чтобы просто обрезать конечные пробелы, вы должны использовать

UPDATE
    TableName
SET
    ColumnName = RTRIM(ColumnName)

Однако, если вы хотите обрезать все начальные и конечные пробелы, используйте этот

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

Ответ 3

Ну вот хороший 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

Ответ 4

update MyTable set CompanyName = rtrim(CompanyName)

Ответ 5

Если вы используете 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'

Ответ 6

Используйте TRIM функцию SQL.

Если вы используете SQL Server, попробуйте:

SELECT LTRIM(RTRIM(YourColumn)) FROM YourTable

Ответ 7

Ну, это зависит от того, какую версию SQL Server вы используете.

В SQL Server 2008 r2, 2012 и 2014 вы можете просто использовать TRIM(CompanyName)

Функция TRIM SQL Server

В других версиях вы должны использовать set CompanyName = LTRIM(RTRIM(CompanyName))

Ответ 8

SQL Server не поддерживает функцию Trim().

Но вы можете использовать LTRIM() для удаления ведущих пробелов и RTRIM() для удаления конечных пробелов.

может использовать его как LTRIM (RTRIM (ColumnName)), чтобы удалить оба.

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

Ответ 10

SELECT TRIM (ColumnName) FROM dual;

Ответ 11

Пример:

SELECT TRIM('   Sample   ');

Результат: 'Sample'

UPDATE TableName SET ColumnName = TRIM(ColumnName)

Ответ 12

Лучший способ удалить все пробелы SELECT REPLACE ( "Amit Tech Corp", '', '')

Вместо LTRIM и RTRIM