Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment combiner l'opérateur IN avec la condition LIKE (ou le meilleur moyen d'obtenir des résultats comparables)

Joindre votre table de préfixes avec votre table réelle fonctionnerait à la fois dans SQL Server et 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