SQL Trim with Alternative Characters

SQL Trim UDF

.NET strings have a method that allow you to trim characters from the beginning and end of a string. There is also a SQL trim function, but you can only trim the space character, unfortunately you cannot specify which character you want to trim. I sought to rectify this with a UDF:

CREATE FUNCTION TrimSingleChar
(
-- Add the parameters for the function here
@needle nchar(1),
@haystack as nvarchar(max)
)
RETURNS nvarchar(max)
AS
BEGIN
DECLARE @pos as int -- variable to hold the position of @needle

-- Check whether @needle appears at the start of the string
SELECT @pos = CHARINDEX(@needle,@haystack,0)
IF @pos = 1
BEGIN
SELECT @haystack = SUBSTRING(@haystack,2,LEN(@haystack) -1)
END

-- Reverse the string
SELECT @haystack = REVERSE(@haystack)

-- Check again whether @needle appears at the start of the string
SELECT @pos = CHARINDEX(@needle,@haystack,0)
IF @pos = 1
BEGIN
SELECT @haystack = SUBSTRING(@haystack,2,LEN(@haystack) -1)
END

-- Reverse the string to back how it was, and return it
RETURN REVERSE(@haystack)

END
GO

Unfortuantely at the moment this function will only trim a single instance of @needle from the beginning and end, but at the moment that’s all I need.

As .NET has native functions available to perform the above task, a better option would be to use a SQL CLR function. That’s beyond the scope of this article, however. Maybe next time! For more information about SQL CLR functions, you can check out more at this link: http://msdn.microsoft.com/en-us/library/ms131077.aspx

For more information about SQL UDF functions, you can read more here: http://technet.microsoft.com/en-us/library/aa214363(v=sql.80).aspx

OpenChronos Compiliation in Windows

OpenChronos Compiliation

Following the very useful instructions here: http://rubenlaguna.com/wp/2011/02/11/compiling-openchronos-in-windows/index.html/ I ran into a problem:
Resolving ftp.uni-kl.de (ftp.uni-kl.de)… 131.246.123.4, 2001:638:208:ef1b:0:ff:fe00:4
Connecting to ftp.uni-kl.de (ftp.uni-kl.de)|131.246.123.4|:80… connected.
HTTP request sent, awaiting response… 404 Not Found
2012-10-02 13:01:19 ERROR 404: Not Found.

I resolved it by modifying the buildgcc.pl file in the /tmp/mspgcc4-20110130 folder, changing line 136 from:

$BINUTILS_VERSION = “2.21”;

to

$BINUTILS_VERSION = “2.21.1”;

I’m not sure if it will break further into the process, I’ll update if so (and if not!)

 

The roguelj project dumping ground. Music, Electronics, Coding, SQL, & more…