Here's a function that will do it. CREATE FUNCTION dbo.fnStrip(@string AS VARCHAR(100)) RETURNS @SPLIT TABLE( String VARCHAR(100), Number VARCHAR(100))ASBEGIN DECLARE @Len INT DECLARE @Pos INT DECLARE @OutString VARCHAR(100) DECLARE @OutNumber VARCHAR(100) DECLARE @ch CHAR(1) SELECT @Len = LEN(@string), @Pos = 1, @OutString = '', @OutNumber = '' WHILE @Pos <= @Len BEGIN SET @ch = SUBSTRING(@string, @pos, 1) IF ISNUMERIC(@ch) != 0 SET @OutNumber = @OutNumber + @ch ELSE SET @OutString = @OutString + @ch SET @Pos = @Pos + 1 END INSERT INTO @SPLIT VALUES (@OutString, @OutNumber) RETURN ENDGOCREATE TABLE #tmp (TestString VARCHAR(100))GOINSERT INTO #tmpSELECT 'AB12CD3EFGH456'UNION ALL SELECT 'abce123fghi456'GOSELECT *FROM #tmp tCROSS APPLY dbo.fnStrip(t.TestString)GODROP TABLE #tmpGODROP FUNCTION dbo.fnStripGO
There are 10 types of people in the world, those that understand binary, and those that don't.