Вы можете использовать следующие общие функции, чтобы вырезать произвольными начальные и конечные символы, просто вызвав
dbo.LTrimX(dbo.RTrimX(' ##a# bc### ', ' #'), ' #')
Здесь UDF, (адаптировано из here):
CREATE FUNCTION dbo.LTrimX(@str VARCHAR(MAX), @trimchars VARCHAR(255)) RETURNS VARCHAR(MAX)
AS
BEGIN
IF @str LIKE '[' + @trimchars + ']%'
SET @str =STUFF (@str , 1 , PATINDEX('%[^' + @trimchars + ']%', @str)-1 , '')
RETURN @str
END
CREATE FUNCTION dbo.RTrimX(@str VARCHAR(MAX), @trimchars VARCHAR(255)) RETURNS VARCHAR(MAX)
AS
BEGIN
IF @str LIKE '%[' + @trimchars + ']'
SET @str = REVERSE(dbo.LTrimX(REVERSE(@str), @trimchars))
RETURN @str
END
GO
Ожидаете ли вы, что # появится где-нибудь еще? или просто ведущий/конечный? Всегда 3 ###? – gbn
@ gbn, да. Я уточню свой вопрос. спасибо, что заметили. – ZigiZ