É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

Comentarios