SQL Server - Extraer cadena entre dos caracteres

   
Vista:

Extraer cadena entre dos caracteres

Publicado por Pedro (9 intervenciones) el 26/12/2012 21:05:06
Saludos, soy algo nuevo en este foro y tengo una duda. Me explico, estoy manejando SQL Server y queria saber si puedo extraer una cadena dividida entre dos caracteres, tengo un cadena de este tipo:

01-001-0256780

El punto es que el primer numero hace alusion al tipo de documento, el segundo a la serie y el tercero al numero de documento. Hatas ahi no tendria problemas en hacerlo con un charindex, pero el caso es que tambien se presentan casos como:

01-0008-024891890

Como ven ya tiene 4 caracteres y eso hace que mi sentencia con charindex ya no funciona. Mi consulta es: ¿es posible extraer la cadena entre los dos guiones indenpendientmente de la longitud de esta?

Agradezco anteladamente su respuesta
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

Extraer cadena entre dos caracteres

Publicado por Isaias (3182 intervenciones) el 26/12/2012 23:25:13
SELECT SUBSTRING('01-0008-024891890', CHARINDEX('-','01-0008-024891890',1)+1, CHARINDEX ('-','01-0008-024891890', 5)-4)
SELECT SUBSTRING('01-001-0256780', CHARINDEX('-','01-001-0256780',1)+1, CHARINDEX ('-','01-001-0256780', 5)-4)
SELECT SUBSTRING('01-001108-024891890', CHARINDEX('-','01-001108-024891890',1)+1, CHARINDEX ('-','01-001108-024891890', 5)-4)
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

Extraer cadena entre dos caracteres

Publicado por Pedro (9 intervenciones) el 27/12/2012 20:03:31
No me funciono, me sale "El parámetro de longitud pasado a la función de subcadena no es válido."
, lo que quiero es extraer los numeros entre los dos guiones sin importar la longitud de estos. Hago referencia a una columna de la tabla Voucher, columna 'referencia', lo demas ya esta dicho arriba
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
Imágen de perfil de Isaias

Extraer cadena entre dos caracteres

Publicado por Isaias (3182 intervenciones) el 28/12/2012 17:52:04
Te pase 3 ejemplos y todos funcionan, claro esta, con las reglas que nos diste, ahora bien, si por alguna razon alguno de tus registros no trae el - (guion), o que no cumpla con las reglas, es logico que no funcionara.
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

Extraer cadena entre dos caracteres

Publicado por Pedro (9 intervenciones) el 02/01/2013 20:55:47
Gracias maestro, si tenias razon la estaba usando mal, por favor si no fuera mucha molestia podrias decirme como extraer lo que sale a partir del segundo guion a la derecha

'01-0001-002833710'
de como resultado

002833710

Por favor y gracias por tu respuesta
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