Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Extraer texto a la izquierda de un indice (https://www.clubdelphi.com/foros/showthread.php?t=25888)

Johnny Q 06-10-2005 18:30:31

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

marcoszorrilla 06-10-2005 18:34:31

Mírate la función Left.

Un Saludo.

Johnny Q 06-10-2005 18:50:29

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 :(

marcoszorrilla 06-10-2005 19:01:37

Right

Un Saludo.

Johnny Q 06-10-2005 19:18:24

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.

marcoszorrilla 06-10-2005 19:37:10

Un Saludo.

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


Un Saludo.

vtdeleon 06-10-2005 19:45:21

Saludos

Otra opción sería (probado en Firebird)
SUBSTR(palabra,1,10)
Casi lo mismo que ha expuesto marcoszorrilla

Chente(rMan) 06-10-2005 19:45:21

Podrias explicarte un poco mejor???



Saludos

Vicente López.

Casimiro Notevi 06-10-2005 19:47:58

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 :o

Chente(rMan) 06-10-2005 19:49:25

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.

Johnny Q 06-10-2005 19:49:32

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.:D

Muchas gracias por tu ayuda Marcos.

Casimiro Notevi 06-10-2005 19:50:53

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.:D

Muchas gracias por tu ayuda Marcos.

y por qué no lo cuentas?, es secreto también?;)

vtdeleon 06-10-2005 19:51:00

Saludos

Creo que con un Ejemplo bastaría:)
entonces tenemos esto:
SUBSTR('ClubDelphi',3,6)
el resultado sería: 'ubDelp'

Chente(rMan) 06-10-2005 19:53:50

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.

Johnny Q 06-10-2005 19:55:22

Para Vicente:

probe el codigo que me enviaste y es exactamente lo que estaba buscando, muchas gracias.

Casimiro Notevi 06-10-2005 19:56:01

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 ... ;)

vtdeleon 06-10-2005 20:01:51

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
:rolleyes:

Johnny Q 06-10-2005 21:06:05

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.


La franja horaria es GMT +2. Ahora son las 09:08:04.

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