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

¿Cómo puedo introducir múltiples condiciones en el operador LIKE?

Este es un buen uso de una tabla temporal.

CREATE TEMPORARY TABLE patterns (
  pattern VARCHAR(20)
);

INSERT INTO patterns VALUES ('ABC%'), ('XYZ%'), ('PQR%');

SELECT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);

En los patrones de ejemplo, no hay manera de que col podría coincidir con más de un patrón, por lo que puede estar seguro de que verá cada fila de tbl como máximo una vez en el resultado. Pero si tus patrones son tales que col podría coincidir con más de uno, debe usar DISTINCT modificador de consulta.

SELECT DISTINCT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);