У меня есть таблица в базе данных SQL Server 2008. В этой таблице есть столбец nvarchar (256), который называется «Имя». К сожалению, значения в этом поле имеют дополнительные пробелы. Например, имя «Билл» фактически хранится в таблице как «Билл».
Я хочу обновить все записи в этой таблице, чтобы удалить лишние пробелы. Однако я с удивлением узнал, что в SQL нет функции TRIM.
Как обновить все записи одновременно, чтобы удалить лишние пробелы?
Спасибо!
У вас есть RTRIM
и LTRIM
функция. Вы можете комбинировать их, чтобы получить желаемую функцию обрезки.
UPDATE Table
SET Name = RTRIM(LTRIM(Name))
Вы можете использовать функцию RTrim, чтобы обрезать все пробелы справа. Используйте LTrim, чтобы обрезать все пробелы слева. Например,
UPDATE Table SET Name = RTrim(Name)
Или для левой и правой обрезки
UPDATE Table SET Name = LTrim(RTrim(Name))
В SQL Server нет функции TRIM, а есть две. По одной для обрезки пробелов с "передней" части строки (LTRIM) и для обрезки пробелов с "конца" строки (RTRIM).
Что-то вроде следующего обновит каждую запись в вашей таблице, обрезая все лишние пробелы (либо в начале, либо в конце) поля varchar/nvarchar:
UPDATE
[YourTableName]
SET
[YourFieldName] = LTRIM(RTRIM([YourFieldName]))
(Странно, но в SSIS (Sql Server Integration Services) есть единственная функция TRIM!)