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
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Extraer cadena entre dos caracteres

Publicado por Isaias (4558 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
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Extraer cadena entre dos caracteres

Publicado por Isaias (4558 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

Extraer cadena entre dos caracteres

Publicado por ABRAHAM GERARDO PADRON VELAZQUEZ (1 intervención) el 11/03/2019 23:14:54
para

para extraer la ip 10.153.19.185

y me deje hasta el terce punto ya que varia el tercer segmento

Select SUBSTRING ('10.153.1.161',CHARINDEX('1','10.153.1.161'),8)

ya que varea por qeu pueden ser, tres numero mas
ejemplo



10.153.1.16
10.153.16.161
10.153.101.153

solo se necesita extraer hasta el tercer punto,
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