2013-10-09 3 views
0

Итак, у меня есть две колонки. Один из них содержит префикс (nvarchar), а следующий, содержащий nvarchar, я хочу удалить указанный префикс, мы назовем указанные слова «слова». Обычно я получаю ответ на этот вопрос right(words, len(words) - len(prefix). Однако предположим, что в начале слова есть два пробела, а префикс - это одно пространство. Поэтому я пытаюсь удалить только одно пространство с начала слова. len (prefix) вернет 0. datalength (prefix) вернет 1, однако из-за того, что некоторые символы принимают 2 байта, я не верю, что datalength будет ответом.Удаление префикса строки в TSQL

ответ

3

Попробуйте это:

RIGHT(words, LEN(words) - (LEN(prefix+'?')-1)) 

Редакцией:

Может быть, вы найдете этот "пылесос":

RIGHT(words, LEN(words) - DATALENGTH(CONVERT(VARCHAR(100),prefix))) 
+0

я на самом деле пытался что-то очень похожее на это, и она работала , Благодарю. – dko

+0

Просто надеялся на более чистое, удобное для чтения решение. – dko

Смежные вопросы