¿Es posible que en SQL para que coincida con un COMO de una lista de registros en una subconsulta?

StackOverflow https://stackoverflow.com/questions/589116

  •  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.

¿Fue útil?

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) ;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top