Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment puis-je introduire plusieurs conditions dans l'opérateur LIKE ?

C'est une bonne utilisation d'une table temporaire.

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

Dans les modèles d'exemple, il n'y a aucun moyen col peut correspondre à plus d'un modèle, vous pouvez donc être sûr de voir chaque ligne de tbl au plus une fois dans le résultat. Mais si vos motifs sont tels que col pourrait correspondre à plus d'un, vous devez utiliser le DISTINCT modificateur de requête.

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