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

Jak połączyć operator IN ze stanem LIKE (lub najlepszym sposobem na uzyskanie porównywalnych wyników)

Połączenie tabeli prefiksów z rzeczywistą tabelą działałoby zarówno w SQL Server, jak i Oracle.

DECLARE @Table TABLE (field VARCHAR(32))
DECLARE @Prefixes TABLE (prefix VARCHAR(32))

INSERT INTO @Table VALUES ('ABC')
INSERT INTO @Table VALUES ('DEF')
INSERT INTO @Table VALUES ('ABDEF')
INSERT INTO @Table VALUES ('DEFAB')
INSERT INTO @Table VALUES ('EFABD')

INSERT INTO @Prefixes VALUES ('AB%')
INSERT INTO @Prefixes VALUES ('DE%')

SELECT  t.*
FROM    @Table t
        INNER JOIN @Prefixes pf ON t.field LIKE pf.prefix 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konwertuj WM_CONCAT na Listagg

  2. java.util.Timestamp.after() błędna podczas porównywania milisekund?

  3. Najlepsze zapytanie, aby trafić na indeks Oracle z wiązaniami i wartościami null

  4. PL/SQL:Błąd PLS-00306:nieprawidłowa liczba lub typy argumentów w wywołaniu wywołanym dla tabeli liczb

  5. Różne CURRENT_TIMESTAMP i SYSDATE w Oracle