Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Predicado In con varios campos. (https://www.clubdelphi.com/foros/showthread.php?t=92951)

Neeruu 27-03-2018 01:10:49

Predicado In con varios campos.
 
Hola, buenas tardes...

Quería saber si firebird el predicado In con varios campos...

Por Ejemplo:
Código SQL [-]
SELECT A.*
FROM TABLA_A A
WHERE (A.CAMPO1, A.CAMPO2) IN (SELECT B.CAMPO1, B.CAMPO2 FROM TABLA_B B WHERE B.CAMPO3 = 10)

En Oracle esto anda...

ecfisa 27-03-2018 01:27:05

Hola.

Hasta donde sé, en Firebird el predicado IN compara una expresión (izquierda) con una lista de expresiones (derecha).

Saludos :)

manelb 27-03-2018 07:38:09

Has provado

Código SQL [-]
SELECT A.*
FROM TABLA_A A
WHERE (A.CAMPO1||A.CAMPO2) IN (SELECT B.CAMPO1||B.CAMPO2 FROM TABLA_B B WHERE B.CAMPO3 = 10)

Saludos

Neftali [Germán.Estévez] 27-03-2018 08:56:30

Yo creo que las subconsultas (IN) se hace sobre un campo en su forma estandard (tal como han dicho). ¿Puedes dividir ese WHERE en 2 partes (ya sea utilizando OR o AND?

gatosoft 28-03-2018 14:24:18

Cita:

Empezado por Neeruu (Mensaje 525308)
Hola, buenas tardes...

Quería saber si firebird el predicado In con varios campos...

Por Ejemplo:
Código SQL [-]
SELECT A.*
FROM TABLA_A A
WHERE (A.CAMPO1, A.CAMPO2) IN (SELECT B.CAMPO1, B.CAMPO2 FROM TABLA_B B WHERE B.CAMPO3 = 10)

En Oracle esto anda...

Revisa:

Código SQL [-]
SELECT A.*
FROM TABLA_A A
WHERE EXISTS (SELECT 1
                FROM TABLA_B B 
         WHERE B.CAMPO1 = A.CAMPO1
             AND B.CAMPO2 = A.CAMPO2
           AND B.CAMPO3 = 10       
       )


La franja horaria es GMT +2. Ahora son las 11:55:45.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi