Обрезка текстовых строк в SQL Server 2008

У меня есть таблица в базе данных SQL Server 2008. В этой таблице есть столбец nvarchar (256), который называется «Имя». К сожалению, значения в этом поле имеют дополнительные пробелы. Например, имя «Билл» фактически хранится в таблице как «Билл».

Я хочу обновить все записи в этой таблице, чтобы удалить лишние пробелы. Однако я с удивлением узнал, что в SQL нет функции TRIM.

Как обновить все записи одновременно, чтобы удалить лишние пробелы?

Спасибо!

43
задан Clayton Tosatti 26 December 2018 в 20:28
поделиться

3 ответа

У вас есть RTRIM и LTRIM функция. Вы можете комбинировать их, чтобы получить желаемую функцию обрезки.

UPDATE Table
SET Name = RTRIM(LTRIM(Name))
98
ответ дан 26 November 2019 в 22:32
поделиться

Вы можете использовать функцию RTrim, чтобы обрезать все пробелы справа. Используйте LTrim, чтобы обрезать все пробелы слева. Например,

UPDATE Table SET Name = RTrim(Name)

Или для левой и правой обрезки

UPDATE Table SET Name = LTrim(RTrim(Name))
16
ответ дан 26 November 2019 в 22:32
поделиться

В SQL Server нет функции TRIM, а есть две. По одной для обрезки пробелов с "передней" части строки (LTRIM) и для обрезки пробелов с "конца" строки (RTRIM).

Что-то вроде следующего обновит каждую запись в вашей таблице, обрезая все лишние пробелы (либо в начале, либо в конце) поля varchar/nvarchar:

UPDATE 
   [YourTableName]
SET
   [YourFieldName] = LTRIM(RTRIM([YourFieldName]))

(Странно, но в SSIS (Sql Server Integration Services) есть единственная функция TRIM!)

4
ответ дан 26 November 2019 в 22:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: