RTRIM не убирает пробелы в конце?

Я использовал запрос:

    update Table
    set Seg = RTRIM(Seg)

Это все еще не удаляет лишние пробелы в конце? Мне действительно нужно удалить это, так как я выполняю vlookups в Excel, и это вызывает проблемы.

Тип данных столбца Seg: (nchar(10), null)

Любая помощь приветствуется.


person Sorath    schedule 23.10.2017    source источник
comment
Может быть, вместо этого в конце есть скрытый символ (Char (13), Char (10))?   -  person Mark Kram    schedule 23.10.2017
comment
Взгляните на stackoverflow.com/questions/42958278/   -  person John Cappelletti    schedule 23.10.2017
comment
да Марк правильный, только что проверил..create table #t ( col1 nchar(100) ) insert into #t select 'abc '+char(13)+Char(10) select col1,RTRIM(col1) from #t   -  person TheGameiswar    schedule 23.10.2017
comment
SELECT не сломан.   -  person ta.speot.is    schedule 23.10.2017


Ответы (2)


Вы можете обрезать столбец NCHAR(X) вправо сколько угодно, значения всегда будут одинаковой длины. А именно: X. Значение всегда будет дополнено пробелами, поэтому RTRIM в основном не работает в столбце символов фиксированной ширины.

Также обратите внимание, что при сравнении строк конечные пробелы игнорируются.

person TT.    schedule 23.10.2017

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

ОБНОВЛЕНИЕ имя_таблицы SET имя_столбца = RTRIM(имя_столбца)

если вы хотите обрезать все пробелы, используйте это

ОБНОВЛЕНИЕ имя_таблицы SET имя_столбца = LTRIM(RTRIM(имя_столбца))

person sanal sunny    schedule 23.10.2017