Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Seleccionar cadena a la izquierda y a la derecha del guión

Estas en el tema de Seleccionar cadena a la izquierda y a la derecha del guión en el foro de SQL Server en Foros del Web. Un Saludo, Teno unos datos separados por guión (no siempre tienen la misma longitud) por ejemplo : 82348234 - 9123489131 3242435245 - 9396 Y necesito ...
  #1 (permalink)  
Antiguo 10/03/2014, 15:35
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 23 años
Puntos: 4
Seleccionar cadena a la izquierda y a la derecha del guión

Un Saludo,

Teno unos datos separados por guión (no siempre tienen la misma longitud) por ejemplo :

82348234 - 9123489131

3242435245 - 9396

Y necesito seleccionar separadamente el valor a la izquierda y a la derecha del guión.

Como hacerlo ?

Saludos y Gracias
__________________
EL LIMITE ES EL UNIVERSO
  #2 (permalink)  
Antiguo 10/03/2014, 15:50
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 4 meses
Puntos: 774
Respuesta: Seleccionar cadena a la izquierda y a la derecha del guión

Código SQL:
Ver original
  1. DECLARE @cadena VARCHAR(50)
  2. SET @cadena='82348234 - 9123489131'
  3. SELECT ltrim(rtrim(SUBSTRING(@cadena,charindex('-',@cadena,1)+1,len(@cadena)))) AS derecha,
  4. ltrim(rtrim(SUBSTRING(@cadena,1,charindex('-',@cadena,1)-1))) AS izquierda

con algo asi :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 10/03/2014, 16:17
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 23 años
Puntos: 4
Respuesta: Seleccionar cadena a la izquierda y a la derecha del guión

Muchas gracias Libras,

Hay un detalle final y es que tengo algunos valores guardados sin guión y sin parte derecha, por ejemplo :

Código SQL:
Ver original
  1. DECLARE @cadena VARCHAR(50)
  2. SET @cadena='[B]82348234[/B]'
  3. SELECT ltrim(rtrim(SUBSTRING(@cadena,charindex('-',@cadena,1)+1,len(@cadena)))) AS derecha,
  4. ltrim(rtrim(SUBSTRING(@cadena,1,charindex('-',@cadena,1)-1))) AS izquierda


Sale este error :
Cita:
Se pasó un parámetro de longitud no válido a la función LEFT o SUBSTRING.

Y de esta forma marca error...................cómo controlarlo y que cuando no tenga guión lo tome la "parte izquierda" ???


Gracias de Antemano...
__________________
EL LIMITE ES EL UNIVERSO

Última edición por gnzsoloyo; 10/03/2014 a las 16:53
  #4 (permalink)  
Antiguo 10/03/2014, 16:30
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 4 meses
Puntos: 774
Respuesta: Seleccionar cadena a la izquierda y a la derecha del guión

prueba con esto:

Código SQL:
Ver original
  1. DECLARE @cadena VARCHAR(50)
  2. SET @cadena='82348234'
  3. SELECT ltrim(rtrim(SUBSTRING(@cadena,charindex('-',@cadena,1)+1,len(@cadena)))) AS derecha,
  4. CASE WHEN charindex('-',@cadena,1)>0 THEN ltrim(rtrim(SUBSTRING(@cadena,1,charindex('-',@cadena,1)-1))) ELSE 'No value' END AS izquierda
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Etiquetas: cadena, derecha, guión, izquierda
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:23.