Skip to content

Instantly share code, notes, and snippets.

@javierguerrero
Created May 14, 2012 23:41
Show Gist options
  • Save javierguerrero/2698097 to your computer and use it in GitHub Desktop.
Save javierguerrero/2698097 to your computer and use it in GitHub Desktop.
Cómo extraer un número desde una cadena en SQL Server
CREATE FUNCTION dbo.EXTRACT_YEAR(@periodo AS VARCHAR(max))
RETURNS INT
AS
BEGIN
WHILE PATINDEX('%[^0-9]%', @periodo) > 0
BEGIN
SET @periodo = REPLACE(@periodo,SUBSTRING(@periodo,PATINDEX('%[^0-9]%', @periodo),1),'')
END
RETURN LEFT(@periodo, 4)
END
/*Cómo usar la función*/
SELECT dbo.EXTRACT_YEAR('Enero - Diciembre 1994')
/*
DECLARE @periodo varchar(30)
SET @periodo = '2008 - I'
WHILE PATINDEX('%[^0-9]%', @periodo) > 0
BEGIN
SET @periodo = REPLACE(@periodo,SUBSTRING(@periodo,PATINDEX('%[^0-9]%', @periodo),1),'')
END
select LEFT(@periodo, 4)
*/
@EnriqueReyesCerda
Copy link

Muchas gracias, muy buena

@Raudelvb
Copy link

Raudelvb commented Dec 4, 2015

Buenas y gracias de antemano a todos,

Necesito crear una función que sea capaz de sacar de una cadena de caracteres un número de 5 cifras en caso que exista.

Ejemplo: Alberto a comprado 25687 artículos.
Resultado devuelto por la función 25687
He intentado adaptar la vuestra pero no lo he logrado.

Muchas gracias por la atención y ayuda.

@ebenito
Copy link

ebenito commented Mar 30, 2017

Muchas gracias, me fue muy útil.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment