¿Es posible que en SQL para que coincida con un COMO de una lista de registros en una subconsulta?
-
09-09-2019 - |
Pregunta
El uso de estas tablas, como muestra:
CodeVariations
CODE
-----------
ABC_012
DEF_024
JKLX048
RegisteredCodes
CODE AMOUNT
-------- ------
ABCM012 5
ABCK012 25
JKLM048 16
¿Es posible escribir una consulta para recuperar todas las filas de RegisteredCodes cuando código coincide con un patrón en cualquier fila de la CodeVariations mesa? Es decir, cualquier fila que coincide con un patrón como de cualquiera 'ABC_012'
, 'DEF_024'
o 'JKLX048'
El resultado debe ser:
CODE AMOUNT
-------- ------
ABCM012 5
ABCK012 25
Estoy usando PostgreSQL, pero sería interesante saber si es posible hacer esto en una simple consulta, ya sea para PostgreSQL o cualquier otra base de datos.
Solución
hace esto lo que necesita?
select distinct RC.* from RegisteredCodes RC, CodeVariations CV
where RC.CODE LIKE CV.CODE;
Otros consejos
Es esto que busca:
SELCET * FROM RegisteredCodes RC WHERE RC.Code IN (SELECT CODE FROM CodeVariations WHERE CODE LIKE ('ABC%') AND CODE LIKE ('%012')
Esto obtendrá todos los registros que comienzan con 'ABC' y termina con '012' y similares para 'DEF" y 'JKL'.
O
¿Está buscando algo así como este ?
select * from CAT_ITEM where DESCRICAO LIKE '%TUBO%%PVC%%DNR%'
Todo es lista como en una cadena.
En Oracle y PostgreSQL que puede usted solo comodines char "_" para caracteres individuales.
select RC.* from RegisteredCodes RC, CodeVariations CV
where RC.CODE LIKE 'ABC_012';
utilizar Substring
select RC.* from RegisteredCodes RC, CodeVariations CV
where RC.CODE LIKE substring(CV.Code,1,3)||'_'||substring(CV.Code,5) ;