Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak mogę wprowadzić wiele warunków w operatorze LIKE?

To jest dobre wykorzystanie tabeli tymczasowej.

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

W przykładowych wzorcach nie ma mowy o col może pasować do więcej niż jednego wzorca, więc możesz być pewien, że zobaczysz każdy wiersz tbl najwyżej raz w wyniku. Ale jeśli twoje wzorce są takie, że col może pasować do więcej niż jednego, powinieneś użyć DISTINCT modyfikator zapytania.

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uniknąć błędów mutacji tabel

  2. Różnica między VARCHAR2 (10 CHAR) a NVARCHAR2 (10)

  3. Błąd wyjścia SQL Fiddle

  4. Wycofaj zadeklarowaną transakcję

  5. Zrzut zużycia kursora