Usar una cadena para hacer una subconsulta en oracle

Preguntado hace 1 año

Gabriel Molina
Editado hace 1 año
Votos
PositivosNegativosTotal
3 0 3
90 Visualizaciones
Compártelo: Compártelo en twitterCompártelo en Facebook

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

....

Actualizando datos

2 Respuestas

Hace 1 año

Kuu

Kuu

366Distinciones de plata1Distinciones de bronce7
Editada hace 1 año
Votos
PositivosNegativosTotal
202

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

Cerrar

Gracias, Kuu. Tuve que retocar algo la función de la web pero funciona. Un saludo. Gabriel Molina hace 1 año

Hace 1 año

Rocío Benages
Votos
PositivosNegativosTotal
101

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.

Cerrar

Hola, Rocío, gracias por la respuesta, pero lo que quiero es que muestre los que tengan código a, los que tengan código b... Trato de ampliar la pregunta. Un saludo. Gabriel Molina hace 1 año

Tu respuesta

Confirmación

Cerrar

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.

Dar una respuesta

Trata de ser descriptivo, usa al menos 25 caracteres