Ver la Versión Completa : Extraer texto a la izquierda de un indice
Johnny Q
06-10-2005, 18:30:31
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
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
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
ya te entendi, esta fácil
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
Saludosvtdeleon, 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.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.