If you ever wanted an equivalent to .NET's String.TrimStart() and TrimEnd for SQL Server, here's two scalar functions that do the same thing.
-- =============================================
-- Author: DOTNETSAM
-- Create date: 07/22/2011
-- Description: Remove starting characters
-- =============================================
CREATE FUNCTION [dbo].[TrimStart]
(
@value VARCHAR(MAX),
@trimval CHAR(10)
)
RETURNS VARCHAR(MAX)
AS
-- TEST CASES
-- select dbo.[TrimStart](',1,2,3,,',',')
-- select dbo.[TrimStart]('1,2,3',',')
-- select dbo.[TrimStart]('1,2,3,',',')
-- select dbo.[TrimStart](',1,,',',')
-- select dbo.[TrimStart](',,1,,,',',')
-- select dbo.[TrimStart](',,1,,,',',,')
BEGIN
DECLARE @ReturnString AS VARCHAR(MAX)
IF(@trimval = LEFT(@value, LEN(@trimval))) --If trimmed val = 1st chars, then trimstart it
SET @ReturnString = SUBSTRING(@value,LEN(@trimval)+1,LEN(@value))
ELSE
SET @ReturnString = @value
RETURN @ReturnString
END
-- =============================================
-- Author: DotNetSam
-- Create date: 07/22/2011
-- Description: Remove ending characters
-- =============================================
CREATE FUNCTION [dbo].[TrimEnd]
(
@value VARCHAR(MAX),
@trimval CHAR(10)
)
RETURNS VARCHAR(MAX)
AS
-- TEST CASES
-- select dbo.[TrimEnd](',1,2,3,,',',')
-- select dbo.[TrimEnd]('1,2,3',',')
-- select dbo.[TrimEnd]('1,2,3,',',')
-- select dbo.[TrimEnd](',1,,',',')
-- select dbo.[TrimEnd](',,1,,,',',')
-- select dbo.[TrimEnd](',,1,,,',',,')
BEGIN
DECLARE @ReturnString AS VARCHAR(MAX)
IF(@trimval = RIGHT(@value, LEN(@trimval))) --If trimmed val = ending chars, then trimend it
SET @ReturnString = SUBSTRING(@value,0,LEN(@value)-LEN(@trimval)+1)
ELSE
SET @ReturnString = @value
RETURN @ReturnString
END