
División de cadena
Publicado por División de cadena (4 intervenciones) el 13/04/2021 21:38:10
Que tal
Tengo un archivo que contiene un listado de rutas donde se encuentran ciertos archivos
declare @cadena varchar(100) = '\\nas\ANEXOS_ARTICULOS\COC\EQ_ACC\EQUIPOS\HORNOS\SMEG\17227906-SF7390X-MUSR1.pdf'
Lo que deseo realizar es la separación de la cadena para obtener
--RUTA
--Nombre del archivo
--Codigo = 17227906 (en este caso)
--Tipo de archivo
Este es mi código, pero es muy repetitivo, considero que lo optimo seria agregar un ciclo
Al igual ahorita si la cadena crece, este código manda un error
Tengo un archivo que contiene un listado de rutas donde se encuentran ciertos archivos
declare @cadena varchar(100) = '\\nas\ANEXOS_ARTICULOS\COC\EQ_ACC\EQUIPOS\HORNOS\SMEG\17227906-SF7390X-MUSR1.pdf'
Lo que deseo realizar es la separación de la cadena para obtener
--RUTA
--Nombre del archivo
--Codigo = 17227906 (en este caso)
--Tipo de archivo
Este es mi código, pero es muy repetitivo, considero que lo optimo seria agregar un ciclo
Al igual ahorita si la cadena crece, este código manda un error
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
declare @cadena varchar(100) = '\\nas\ANEXOS_ARTICULOS\COC\EQ_ACC\EQUIPOS\HORNOS\SMEG\17227906-SF7390X-MUSR1.pdf'
declare @Ruta varchar(100)
declare @V1 varchar(100)
declare @V2 varchar(100)
declare @C1 varchar(100)
declare @C2 varchar(100)
declare @C3 varchar(100)
declare @C4 varchar(100)
declare @C5 varchar(100)
declare @C6 varchar(100)
declare @C7 varchar(100)
declare @C8 varchar(100)
declare @C9 varchar(100)
declare @C10 varchar(100)
declare @C11 varchar(100)
SELECT @Ruta=@cadena
SELECT @V1 = SUBSTRING(@cadena, 1, CHARINDEX('\', @cadena) - 1)
SET @cadena = SUBSTRING(@cadena,(CHARINDEX('\', @cadena) + 1), LEN(@cadena))
PRINT @CADENA
SELECT @V2 = SUBSTRING(@cadena, 1, CHARINDEX('\', @cadena) - 1)
SET @cadena = SUBSTRING(@cadena,(CHARINDEX('\', @cadena) + 1), LEN(@cadena))
PRINT @CADENA
SELECT @C1 = SUBSTRING(@cadena, 1, CHARINDEX('\', @cadena) - 1)
SET @cadena = SUBSTRING(@cadena,(CHARINDEX('\', @cadena) + 1), LEN(@cadena))
PRINT @CADENA
SELECT @C2 = SUBSTRING(@cadena, 1, CHARINDEX('\', @cadena) - 1)
SET @cadena = SUBSTRING(@cadena,(CHARINDEX('\', @cadena) + 1), LEN(@cadena))
SELECT @C3 = SUBSTRING(@cadena, 1, CHARINDEX('\', @cadena) - 1)
SET @cadena = SUBSTRING(@cadena,(CHARINDEX('\', @cadena) + 1), LEN(@cadena))
SELECT @C4 = SUBSTRING(@cadena, 1, CHARINDEX('\', @cadena) - 1)
SET @cadena = SUBSTRING(@cadena,(CHARINDEX('\', @cadena) + 1), LEN(@cadena))
SELECT @C5 = SUBSTRING(@cadena, 1, CHARINDEX('\', @cadena) - 1)
SET @cadena = SUBSTRING(@cadena,(CHARINDEX('\', @cadena) + 1), LEN(@cadena))
SELECT @C6 = SUBSTRING(@cadena, 1, CHARINDEX('\', @cadena) - 1)
SET @cadena = SUBSTRING(@cadena,(CHARINDEX('\', @cadena) + 1), LEN(@cadena))
SELECT @C7 = SUBSTRING(@cadena, 1, CHARINDEX('\', @cadena) - 1)
SET @cadena = SUBSTRING(@cadena,(CHARINDEX('\', @cadena) + 1), LEN(@cadena))
SELECT @C8 = SUBSTRING(@cadena, 1, CHARINDEX('-', @cadena) - 1)
SET @cadena = SUBSTRING(@cadena,(CHARINDEX('-', @cadena) + 1), LEN(@cadena))
SELECT @C9 = SUBSTRING(@cadena, 1, CHARINDEX('-', @cadena) - 1)
SET @cadena = SUBSTRING(@cadena,(CHARINDEX('-', @cadena) + 1), LEN(@cadena))
SELECT @C10 = SUBSTRING(@cadena, 1, CHARINDEX('.', @cadena) - 1)
SET @cadena = SUBSTRING(@cadena,(CHARINDEX('.', @cadena) + 1), LEN(@cadena))
SELECT @C11 = SUBSTRING(@cadena, 1, CHARINDEX('.', @cadena) + 3)
SET @cadena = SUBSTRING(@cadena,(CHARINDEX('.', @cadena) - 1), LEN(@cadena))
SELECT @Ruta AS RUTA
,@V1 AS VACIO1
, @V2 AS VACIO2
, @C1 AS CARPETA1
, @C2 AS CARPETA2
, @C3 AS CARPETA3
, @C4 AS CARPETA4
, @C5 AS CARPETA5
, @C6 AS CARPETA6
, @C7 AS CARPETA7
, @C8 AS CARPETA8
, @C9 AS CARPETA9
, @C10 AS CARPETA10
, @C11 AS CARPETA11
Valora esta pregunta


0