Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como posso introduzir várias condições no operador LIKE?


Este é um bom uso de uma tabela temporária.
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);

Nos padrões de exemplo, não há como col pode corresponder a mais de um padrão, então você pode ter certeza de que verá cada linha de tbl no máximo uma vez no resultado. Mas se seus padrões forem tais que col pode corresponder a mais de um, você deve usar o DISTINCT modificador de consulta.
SELECT DISTINCT t.* FROM tbl t JOIN patterns p ON (t.col LIKE p.pattern);