charindex () считает белые символы в конце, len () не в T-SQL - PullRequest
4 голосов
/ 10 августа 2009

Я хочу найти индекс последнего / символа, но проблема в том, что
LEFT(target, LEN(target) - CHARINDEX('/', REVERSE(target)))
не работает, потому что строка в целевом столбце имеет много пробелов в конце, а функция charindex включает пробелы, но len нет.

Есть ли какая-либо другая функция для замены одного из них?

Ответы [ 2 ]

4 голосов
/ 10 августа 2009

Да, LEN () не учитывает конечные пробелы. Вместо этого используйте DATALENGTH, но имейте в виду, что он учитывает байты, а не символы, поэтому, если вы используете его для значений NVARCHAR (), вам придется разделить его на 2.

2 голосов
/ 10 августа 2009

Функция RTRIM обрезает завершающий пробел.

LEFT(target,
     LEN(target) - CHARINDEX('/', REVERSE(RTRIM(target))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...