Preguntado hace 1 año
Gabriel Molina
Hola a todos,
tengo una cadena como esta 'a,d,j,k' y quería usarla para sacar todos los registros en una tabla que tuvieran un código como este, en pseudocódigo:
select * from tabla where codigo in (funcionQueDesconozco('a,d,j,k'));
¿Hay alguna función en oracle que haga esto, porque no la encuentro? ¿Alguna manera fácil de hacerlo?
Saludos!!
PD Usamos oracle 10g.
ACTUALIZADO
La select debería devolverme los registros con código 'a', los que tengan código 'd', etc...
nombre - código
pepe a
juan d
marcos a
fulano j
....
Hace 1 año
Kuu
Hola Gabriel,
La verdad es que Oracle no lo conozco, pero lo que buscas, si no te entiendo mal es una función "split", es decir, que te divida la cadena por las comas.
He encontrado esta web en la que te explican a hacer una función split que te devuelva una tabla de la cadena, con eso ya lo tendrías.
Para usarlo sería (si usas el mismo nombre que la de la web):
select * from tabla where codigo in (select * from table(split('a,d,j,k')));
Espero que te ayude ;)
Rocío Benages
Buenos días Gabriel,
Si no he entendido mal lo que necesitas es que dado un campo código saber si este contiene la siguiente cadena "a,d,j,k" La solución que me viene a la cabeza es un LIKE. Yo escribiría algo como:
SELECT * FROM tabla WHERE codigo LIKE "%a,d,j,k%";
Esto te devolverá todos los registros de la tabla cuyo campo código contenga la cadena "a,d,j,k" en cualquier posición del campo código.
Yo utilizo actualmente MySQL pero no creo que haya mucha diferencia con Oracle.
Espero haberte ayudado. Saludos.
Si sales ahora, perderás los cambios. ¿Estás seguro de querer salir?
Para participar en Babelias, debes estar convenientemente validado. Si ya eres usuario inicia sesión, si no lo eres, te puedes registrar.
Trata de ser descriptivo, usa al menos 25 caracteres
LLeva tu prestigio a tu página o blog, con el widget de Babelias
Usuario de ejemplo