Count Occurrences of Characters in a String – SQL Server

While implementing a feature of a GUI Editor, we came across a requirement to count the occurrences of characters in a string, stored in our SQL Server Database.

I was suggested a simple and efficient script that I am sharing with all of you for your use.


DECLARE @longWord varchar(28)='AntiDisEstablishmentArianism'
SELECT CountCharacters =
DATALENGTH(@longWord)
- DATALENGTH (REPLACE(REPLACE(LOWER(@longWord),'a',''),'i',''))


OUTPUT

image

As simple as it gets without using the SUBSTRING, PATINDEX or GROUP BY functions!


About The Author

Suprotim Agarwal, MCSD, MCAD, MCDBA, MCSE, is the founder of DotNetCurry, DNC Magazine for Developers, SQLServerCurry and DevCurry. He has also authored a couple of books 51 Recipes using jQuery with ASP.NET Controls and a new one recently at The Absolutely Awesome jQuery CookBook.

Suprotim has received the prestigous Microsoft MVP award for nine times in a row now. In a professional capacity, he is the CEO of A2Z Knowledge Visuals Pvt Ltd, a digital group that represents premium web sites and digital publications comprising of Professional web, windows, mobile and cloud developers, technical managers, and architects.

Get in touch with him on Twitter @suprotimagarwal, LinkedIn or befriend him on Facebook

1 comment:

גרי רשף Geri Reshef said...

It is recomended using the less known text function - DATALENGTH instead of LEN function because LEN function is doing RTrim to the string.