Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-10-2005
Johnny Q Johnny Q is offline
Miembro
 
Registrado: may 2005
Ubicación: Colombia
Posts: 172
Poder: 19
Johnny Q Va por buen camino
Question Extraer texto a la izquierda de un indice

Un saludo a todos,

Trabajo con SQL Server, quisiera saber si alguien conoce alguna forma de extraer el texto que este a la izquierda de un indice que se da contando desde el final de la cadena hacia la izquierda.

Para hacerlo mas claro pondre el siguiente ejemplo,
En los cadenas "programa" y "delphi" quiero extraer la cadena que este a la izquierda del indice 3 (contando de derecha a izquierda), el resultado seria:

"progr"
"del"

Muchas gracias por sus respuestas
Responder Con Cita
  #2  
Antiguo 06-10-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Mírate la función Left.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 06-10-2005
Johnny Q Johnny Q is offline
Miembro
 
Registrado: may 2005
Ubicación: Colombia
Posts: 172
Poder: 19
Johnny Q Va por buen camino
la función LEFT trabaja con un indice de izquierda a derecha y el indice que yo necesito es de derecha a izquierda

con la cadena "programa"

LEFT("programa", 3) arroja "pro"

y lo que yo necesito es que al darle un indice 3 me arroje "progr" que es la cadena que esta a la izquierda del indice 3 (contando de derecha a izquierda).

No se si me he explicado bien
Responder Con Cita
  #4  
Antiguo 06-10-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Right

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 06-10-2005
Johnny Q Johnny Q is offline
Miembro
 
Registrado: may 2005
Ubicación: Colombia
Posts: 172
Poder: 19
Johnny Q Va por buen camino
Creo que no me explique bien, y la verdad es que lo que necesito es un poco complejo

si utilizo RIGHT me arrojaria "ama" y ese resultado tampoco es el que necesito.

Agradezco mucho tu intento por ayudarme amigo Marcos.
Responder Con Cita
  #6  
Antiguo 06-10-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Un Saludo.

Mid(Palabra,1,Length(Palabra) -3)


Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #7  
Antiguo 06-10-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Otra opción sería (probado en Firebird)
SUBSTR(palabra,1,10)
Casi lo mismo que ha expuesto marcoszorrilla
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #8  
Antiguo 06-10-2005
Avatar de Chente(rMan)
Chente(rMan) Chente(rMan) is offline
Miembro
 
Registrado: ago 2005
Posts: 89
Poder: 19
Chente(rMan) Va por buen camino
Podrias explicarte un poco mejor???



Saludos

Vicente López.
Responder Con Cita
  #9  
Antiguo 06-10-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
cResultado := copy(cCadena, 1, length(cCadena)-3))

¿Quiéres decir esto?




Perdón, no vale... es que no me había fijado que está en el foro sql

Última edición por Casimiro Notevi fecha: 06-10-2005 a las 19:49:33. Razón: Nunca me fijo en el foro que estoy
Responder Con Cita
  #10  
Antiguo 06-10-2005
Avatar de Chente(rMan)
Chente(rMan) Chente(rMan) is offline
Miembro
 
Registrado: ago 2005
Posts: 89
Poder: 19
Chente(rMan) Va por buen camino
ya te entendi, esta fácil

Código SQL [-]
declare @palabra varchar(50)
set @palabra = 'Programa'
select @palabra, left(@palabra,(len(@palabra)-3))


Edito: Casimiro, vas a decir que te copie pero te me adelantate simplemente


Saludos.

Vicente López.
Responder Con Cita
  #11  
Antiguo 06-10-2005
Johnny Q Johnny Q is offline
Miembro
 
Registrado: may 2005
Ubicación: Colombia
Posts: 172
Poder: 19
Johnny Q Va por buen camino
Eso funciona muy bien desde el código de delphi, pero lo que yo busco es una sentencia SQL, pues estoy intentando cargar datos desde Excel a SQL Server.

Lo mejor es que ya logre resolverlo.

Muchas gracias por tu ayuda Marcos.
Responder Con Cita
  #12  
Antiguo 06-10-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Johnny Q
Eso funciona muy bien desde el código de delphi, pero lo que yo busco es una sentencia SQL, pues estoy intentando cargar datos desde Excel a SQL Server.

Lo mejor es que ya logre resolverlo.

Muchas gracias por tu ayuda Marcos.
y por qué no lo cuentas?, es secreto también?
Responder Con Cita
  #13  
Antiguo 06-10-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

Creo que con un Ejemplo bastaría
entonces tenemos esto:
SUBSTR('ClubDelphi',3,6)
el resultado sería: 'ubDelp'
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #14  
Antiguo 06-10-2005
Avatar de Chente(rMan)
Chente(rMan) Chente(rMan) is offline
Miembro
 
Registrado: ago 2005
Posts: 89
Poder: 19
Chente(rMan) Va por buen camino
vtdeleon, lo que Johnny Q quiere, es que tu cuentes de derecha a izq 3 posiciones y se lo quites al texto, mas arriba puse la solución.



Saludos.

Vicente López.
Responder Con Cita
  #15  
Antiguo 06-10-2005
Johnny Q Johnny Q is offline
Miembro
 
Registrado: may 2005
Ubicación: Colombia
Posts: 172
Poder: 19
Johnny Q Va por buen camino
Thumbs up

Para Vicente:

probe el codigo que me enviaste y es exactamente lo que estaba buscando, muchas gracias.
Responder Con Cita
  #16  
Antiguo 06-10-2005
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Chente(rMan)
ya te entendi, esta fácil

Código SQL [-]
 declare @palabra varchar(50)
 set @palabra = 'Programa'
 select @palabra, left(@palabra,(len(@palabra)-3))


Edito: Casimiro, vas a decir que te copie pero te me adelantate simplemente


Saludos.

Vicente López.
je, je, je ...
Responder Con Cita
  #17  
Antiguo 06-10-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos
Cita:
Empezado por Chente(rMan)
vtdeleon, lo que Johnny Q quiere, es que tu cuentes de derecha a izq 3 posiciones y se lo quites al texto, mas arriba puse la solución.
Oops, Siempre lento como la tortuga, me tarde un poco en el post anterior y me habia quedado en el post 8. No habia visto los demas
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #18  
Antiguo 06-10-2005
Johnny Q Johnny Q is offline
Miembro
 
Registrado: may 2005
Ubicación: Colombia
Posts: 172
Poder: 19
Johnny Q Va por buen camino
Casimiro me pregunto que había hecho yo, pues lo que se me ocurrio fue lo siguiente:

SELECT REVERSE(SUBSTRING(REVERSE(texto),4,8)) FROM tabla

aunque me parece más óptima la solución que dio Vicente.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 10:41:27.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi