Ésta función es muy útil y permite extraer información sólo números de un campo cadena.

SQL
CREATE FUNCTION dbo.udf_GetNumeric
(@strAlphaNumeric VARCHAR(256))
RETURNS VARCHAR(256)
AS
BEGIN
DECLARE @intAlpha INT
SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric)
BEGIN
WHILE @intAlpha > 0
BEGIN
SET @strAlphaNumeric = STUFF(@strAlphaNumeric, @intAlpha, 1, '' )
SET @intAlpha = PATINDEX('%[^0-9]%', @strAlphaNumeric )
END
END
RETURN ISNULL(@strAlphaNumeric,0)
END
GO

Es momento de utilizar nuestra función dbo.udf_GetNumeric, el que se puede llamar con un simple SELECT.

SQL
-- En el caso si obtenemos el valor de una tabla
SELECT dbo.udf_GetNumeric(column_name) 
from table_name

-- En el caso que obtenemos el valor de una variable
declare @elDni varchar(11)
select @elDni = 'N45545352'
select @elDni =  dbo.udf_GetNumeric(@elDni) 

Ejemplo: Supongamos que tenemos una base de datos con los clientes y sus DNI. El DNI está almacenado con la letra y queremos sólo la parte numérica.

DNI : ‘N45545352’

El que nos devolvera