Oracle
 sql >> Database >  >> RDS >> Oracle

Come posso introdurre più condizioni nell'operatore LIKE?

Questo è un buon uso di una tabella temporanea.

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

Nei modelli di esempio, non c'è modo col potrebbe corrispondere a più di un pattern, quindi puoi essere certo di vedere ogni riga di tbl al massimo una volta nel risultato. Ma se i tuoi schemi sono tali che col potrebbe corrispondere a più di uno, dovresti usare il DISTINCT modificatore di query.

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