Buenos Días
Tengo un pequeño problema que no he sabido como resolver con el uso de las funciones SUBSTR y AT, cuando las uso combinadas directamente en un SQL.
Les pongo un ejemplo de lo que se y de lo que necesito resolver
Se que puedo usar estas funciones de las siguiente manera
Cadena = 'Hola como Estan'
MiCadena = substr(Cadena,1,AT(" ",CADENA)-1)
Entonces MiCadena contendría la palabra "Hola"
Esto funciona perfectamente, no tengo problemas con esto
Ahora bien supongamos que tengo una tabla llamada Productos con estos datos
Codigo_____________________ Descripcion 12345 _____________________Tornillo para gypson
12346 _____________________Tornillo infinito
12347 _____________________Clavos de Acero
12348 _____________________Clavos de 2 pulgados
12349 _____________________Gypson 3x2x0.5
Necesito obtener la primer palabra, es decir hasta el primer espacio en blanco, del campo Descripcion.
A simple vista se ve que la primer palabra es de longitud variable por lo que utilizo la función AT para saber donde esta el primer espacio es blanco y el valor devuelto lo uso como el tercer parámetro de la función SUBSTR.
Dicho lo anterior yo hago una consulta de la siguiente manera:
SELECT DISTINCT SUBSTR(Descripcion, 1,AT(" ",Descripcion)-1) FROM Productos
Al ejecutarlo yo esperaría que me retornara:
Tornillo
Clavos
Gypson
Pero me esta regresando solo la primer letra de la palabra como si no encontrará el espacio en blanco en la Descripcion. Por lo que ejecute el siguiente SQL para comprobarlo:
SELECT Descripcion, AT(" ",Descripcion) as Donde FROM Productos y me regresa la siguiente informacion:
Descripcion_____________________Donde Tornillo para gypson__________________9
Tornillo infinito______________________9
Clavos de Acero______________________7
Clavos de 2 pulgados__________________7
Gypson 3x2x0.5______________________7
Al ejecutar esto compruebo que la función AT hace lo que tiene que hacer. Nuevamente compruebo con una consulta similar
SELECT Descripcion, AT(" ",Descripcion) as Donde, SUBSTR(Descripcion,1, AT(" ",Descripcion)-1) Palabra FROM Productos
Descripcion____________Donde____________Palabra Tornillo para gypson_________9________________T
Tornillo infinito_____________9________________T
Clavos de Acero_____________7________________C
Clavos de 2 pulgados_________7________________C
Gypson 3x2x0.5_____________7________________G
Como pueden ver el al usar estas funciones combinadas DIRECTAMENTE en una CONSULTA, el resultado no es el esperado. Sin embargo fuera de una consulta funciona perfectamente.
Si alguien me puede ayudar o dar alguna explicación que me aclare porque fox se comporta de esta manera y que puedo hacer para solucionarlo.
Les agradezco la atención y la ayuda.