El ejemplo se ha probado en una base de datos Microsoft SQL Server 2008 R2
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
Now use the
function
asSELECT dbo.udf_GetNumeric(column_name)
from table_name
Ésta función es muy útil y permite extraer información sólo números de un campo cadena.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.
si hacemos: select dni from clientes
obtendremos:
dni
--------
1234567894X
1234567895J
1234567895P
ahora: creamos la función en la base de datos y a continuación realizamos la consulta:
select
dbo.udf_GetNumeric(dni) from clientes
obtendremos:dni
--------
1234567894
1234567895
1234567895
fuente:
https://stackoverflow.com/questions/16667251/query-to-get-only-numbers-from-a-string
Muchas gracias al usuario: https://stackoverflow.com/users/1841054/luv