Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie kann ich mehrere Bedingungen in den LIKE-Operator einführen?

Dies ist eine gute Verwendung einer temporären Tabelle.

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

In den Beispielmustern gibt es keine Möglichkeit col könnte mit mehr als einem Muster übereinstimmen, sodass Sie sicher sein können, dass Sie jede Zeile von tbl sehen höchstens einmal im Ergebnis. Aber wenn Ihre Muster so sind, dass col mehr als einem entsprechen könnte, sollten Sie den DISTINCT verwenden Abfragemodifikator.

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