Extract All Numbers from a String in SQL

In SQL you can use PATINDEX (which makes use of Regular Expressions) to extract all the numbers from within a string as shown:

DECLARE @strNumbers VARCHAR(100) = 'I was born in 1978. I am 39 years old. Hopefully I wll make it to 40'DECLARE @Pos SMALLINT = 0SET @Pos = PATINDEX('%[^0-9]%', @strNumbers) --Find first character WHILE (@Pos > 0)BEGIN    -- Replace alphabet with empty string.    SET @strNumbers = STUFF(@strNumbers, @Pos, 1, '')       -- Find next alphabet    SET @Pos = PATINDEX('%[^0-9]%', @strNumbers)ENDSELECT @strNumbers [Output]
Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: