yo estaba buscando secuencia de comandos para extraer el número de texto en el servidor SQL y me encontré con estenúmeros extracto de un texto en SQL Server
CREATE FUNCTION [dbo].[GetNumbersFromText](@String VARCHAR(2000))
RETURNS @Number TABLE (Number INT)
AS
BEGIN
DECLARE @Count INT
DECLARE @IntNumbers VARCHAR(1000)
SET @Count = 0
SET @IntNumbers = ''
WHILE @Count <= LEN(@String)
BEGIN
--Find a numeric charactor
IF SUBSTRING(@String,@Count,1) >= '0' AND SUBSTRING(@String,@Count,1) <= '9'
BEGIN
SET @IntNumbers = @IntNumbers + SUBSTRING(@String,@Count,1)
END
--If the next charactor is not a numeric one, the current number ends, so add a separator
IF (SUBSTRING(@String,@Count+1,1) < '0'OR SUBSTRING(@String,@Count+1,1) > '9') AND SUBSTRING(@String,@Count,1) >= '0' AND SUBSTRING(@String,@Count,1) <= '9'
BEGIN
SET @IntNumbers = @IntNumbers + ','
END
SET @Count = @Count + 1
END
---Split string to give a table with the numbers in the text
INSERT INTO @Number
SELECT DISTINCT items FROM dbo.Split(@IntNumbers, ',')
return
END
y lo llaman como
SELECT Number FROM Dbo.[GetNumbersFromText]('Give me 120 this week and 50 next week')
funciona bien, pero me necesita más código corto. ¿Puedo usar patindex para extraer el número del texto? por favor cualquier persona comparte pequeño & buena lógica para hacerlo. gracias
¿Por qué necesita "código corto" y "pequeña lógica"? Si su función funciona correctamente y funciona de manera aceptable, entonces no hay ninguna razón para cambiarla. – Pondlife