–Create a table with all bad codes
DECLARE @mycode INT
CREATE TABLE #badcodes(badcode INT)
SET @mycode=33
WHILE @mycode<=255
BEGIN
IF (@mycode BETWEEN 33 AND 47) OR (@mycode BETWEEN 58 AND 64)
OR (@mycode BETWEEN 58 AND 64) OR (@mycode BETWEEN 91 AND 96)
OR (@mycode BETWEEN 123 AND 255)
INSERT INTO #BADCODES VALUES(@mycode)
SET @mycode=@mycode+1
END
GO– Suppose you have a @test variable containing bad codes
DECLARE @test VARCHAR(100)
SET @test=‘se+*ar%c&h^da#tab~se’
–Below command will replace bad codes with empty string.UPDATE #badcodes
SET @test=REPLACE(@test,CHAR(badcode),”)
PRINT @test






Wonderful. Pls keep me updated with your latest techniques. It really help me with my project.
Good luck. I’m looking forward to your next posting.
By: Vijayan on September 19, 2007
at 3:28 pm
Thanks so much – Perfect! I’m just past the newbie stage of Transact-SQL and still learning. Can you please explain how the replace “knows” how to look at every badcode row in the table ? That’s a very powerful capability that would not be obvious from the Transact-SQL definition of REPLACE.
-JC
By: JC on November 10, 2007
at 3:10 pm
I will make it clear to you that first I created a temp table and insert all the special characters in it.
IF (@mycode BETWEEN 33 AND 47) OR (@mycode BETWEEN 58 AND 64)
OR (@mycode BETWEEN 58 AND 64) OR (@mycode BETWEEN 91 AND 96)
OR (@mycode BETWEEN 123 AND 255)
with this condition it will only let special character insert in a temp table.
In replace function I am using CHAR( function this will return Character code of the any alphabetic.
If you have any confusion do write me.
Rana
By: codeproject on November 11, 2007
at 10:39 am
your code doesn’t work when the string contains the letters TH together. try CLOTH or MONTH
Bizzare
By: Chapman on March 13, 2008
at 2:59 pm
Mr. bizarre
It works fine, below is the example code for you.
DECLARE @mycode INT
CREATE TABLE #badcodes(badcode INT)
SET @mycode=33
WHILE @mycode<=255
BEGIN
IF (@mycode BETWEEN 33 AND 47) OR (@mycode BETWEEN
58 AND 64)
OR (@mycode BETWEEN 58 AND 64) OR (@mycode BETWEEN
91 AND 96)
OR (@mycode BETWEEN 123 AND 255)
INSERT INTO #BADCODES VALUES(@mycode)
SET @mycode=@mycode+1
END
GO
– Suppose you have a @test variable containing bad codes
DECLARE @test VARCHAR(100)
SET @test=’MONTH’
–Below command will replace bad codes with empty string.
UPDATE #badcodes
SET @test=REPLACE(@test,CHAR(badcode),”)
PRINT @test
DECLARE @test VARCHAR(100)
SET @test=’CLOTH’
–Below command will replace bad codes with empty string.
UPDATE #badcodes
SET @test=REPLACE(@test,CHAR(badcode),”)
PRINT @test
By: codeproject on March 14, 2008
at 9:34 am
Nice Logic.
Thank you.
By: Santosh Payasi on July 17, 2008
at 6:19 am
Hi,
Using your logic I have created a function named IsAlphaNumeric which returns 0 for Alpha-Numeric chars and 1 for non-alphanumeric chars.
Thanks again.
By: Santosh Payasi on July 17, 2008
at 6:26 am
I have this as the input string +91-22-677980002.
Using your logic I get 96779800. Please advice.
By: Abhishek on July 28, 2008
at 6:09 pm
Found it…..its actually 1,2 and 3 are present as superscript/exponent number too hance we need to exclude their codes 179,180,185. I hope this adds more spice to your already good logic
By: Abhishek on July 28, 2008
at 7:37 pm
Nope… Bizzare is correct.
“your code doesn’t work when the string contains the letters TH together. try CLOTH or MONTH”
By: Ash on December 18, 2008
at 9:54 am
[...] came across an elegant solution, putting character codes into a static table (Utility.CharCode in this case) within your database. [...]
By: 200 Words - Parsing Non-Alphanumeric Characters and Ligatures in SQL Server | With That Said on February 6, 2009
at 10:53 pm
[...] eine Tabelle anlegen – wie z.B. hier: Strim Strips Out Non-Alphanumeric Characters oder hier: Sql Server Tips – Removing or Replacing non-alphanumeric characters in strings [...]
By: Bereinigen einer Zeichenkette auf alphanumerische Zeichen via SQL | marcus' tagebuch on February 20, 2009
at 3:55 pm
That was a great piece of code! I love it when programmers really think outside of the box and come-up with that short and sweet piece of miracle code.
Nice job!
By: Jon Robinson on February 27, 2009
at 3:38 pm