CREATE FUNCTION dbo.TrimBothEnds(
@Input VARCHAR(MAX))
RETURNS VARCHAR(MAX)
AS
BEGIN
RETURN(SELECT
SUBSTRING(INPUT, nwl, LEN(INPUT) - nwl - nwr + 2)
FROM(SELECT
LTRIM(RTRIM(@Input))AS INPUT)AS i
CROSS APPLY(SELECT
'%[^' + CHAR(32) + CHAR(9) + CHAR(10) + CHAR(13) + ']%' AS NonWhite,
REVERSE(INPUT)AS VarRev)AS A
CROSS APPLY(SELECT
PATINDEX(NonWhite, INPUT)AS NWL,
PATINDEX(NonWhite, VarRev)AS NWR)AS b);
END;