sql >> Base de Datos >  >> RDS >> Oracle

¿Es posible consultar una columna separada por comas para un valor específico?

Puedes, usando LIKE. No desea hacer coincidir los valores parciales, por lo que deberá incluir las comas en su búsqueda. Eso también significa que deberá proporcionar una coma adicional para buscar valores al principio o al final de su texto:

select 
  * 
from
  YourTable 
where 
  ',' || CommaSeparatedValueColumn || ',' LIKE '%,SearchValue,%'

Pero esta consulta será lenta, al igual que todas las consultas que utilicen LIKE, especialmente con un comodín inicial.

Y siempre hay un riesgo. Si hay espacios alrededor de los valores, o los valores pueden contener comas, en cuyo caso están entre comillas (como en los archivos csv), esta consulta no funcionará y tendrá que agregar aún más lógica, lo que ralentizará su consulta. aún más.

Una mejor solución sería agregar una tabla secundaria para estas categorías. O más bien, incluso una tabla separada para las categorías y una tabla que las vincula a YourTable.