SQL Server - Obtener Numero de una Cadena

   
Vista:

Obtener Numero de una Cadena

Publicado por Christian (8 intervenciones) el 12/08/2016 01:36:05
Compañeros

Tengo una tabla llenado lo siguiente:

Adelanto; 3% Bueno
Adelanto; 3.5%
Adelanto; 4%, Bueno
Adelanto; 4.236%, Bueno
Adelanto; 0.25%, Bueno

Quisiera con un select obtener lo siguiente:

3
3.5
4
4.236
0.25

Gracias por la ayuda saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Obtener Numero de una Cadena

Publicado por Isaias (3181 intervenciones) el 12/08/2016 23:54:21
Veamos
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
-- Creo una funcion de usuario
Create Function dbo.GetNumbers(@Data VarChar(8000))
Returns VarChar(8000)
AS
Begin
    Return Left(
             SubString(@Data, PatIndex('%[0-9.-]%', @Data), 8000),
             PatIndex('%[^0-9.-]%', SubString(@Data, PatIndex('%[0-9.-]%', @Data), 8000) + 'X')-1)
End
 
-- Declaro una variable tipo tabla e inserto los registros
DECLARE @temp TABLE
(
      string NVARCHAR(50)
)
 
INSERT INTO @temp (string)
VALUES
    ('Adelanto; 3% Bueno'),
    ('Adelanto; 3.5%'),
    ('Adelanto; 4%, Bueno'),
	('Adelanto; 4.236%, Bueno'),
	('Adelanto; 0.25%, Bueno')
 
 
-- Hago mi select utilizando la funcion
Select string, dbo.GetNumbers(string) as Numero
From   @Temp
-- Resultado
string Numero
Adelanto; 3% Bueno 3
Adelanto; 3.5% 3.5
Adelanto; 4%, Bueno 4
Adelanto; 4.236%, Bueno 4.236
Adelanto; 0.25%, Bueno 0.25
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar