/ / Se altro nelle query Oracle Oracle - sql, oracle10g

Se altro in Oracle SQL query - sql, oracle10g

Ho uno scenario in cui posso ottenere 2 tipi di input ma il risultato è lo stesso se includi l'input 1 o l'input 2 o entrambi. La seguente è la query che ho attualmente. Questa query recupera il file customer_id dal database dal circuit e telephone ingressi.

select customer.customer_id from circuits join customer on customer.cust_order = circuits.cust_order where circuitId= "somecircuit"
union
select customer.customer_id from customer join telephone on telephone.number = customer.number where telephone = "34234242"

Ora ho bisogno che la seconda query non venga eseguita se il telefono in ingresso non è disponibile e viceversa per il circuito. C'è un modo per farlo nella query stessa?

Non sto pensando di creare un blocco PL / SQL per questo, se non c'è modo di farlo in sql devo ricorrere a Java e due query diverse per ogni scenario.

risposte:

0 per risposta № 1

Questo dovrebbe fare?

select customer.customer_id
from circuits join customer on customer.cust_order = circuits.cust_order
where circuitId is not null
union
select customer.customer_id
from customer join telephone on telephone.number = customer.number
where telephone is not null

-1 per risposta № 2

È possibile unire tutte le tabelle nella query SQL e lasciare che la condizione WHERE gestisca il resto:

SELEZIONA cliente.customer_id
DA circuiti ACCEDI al cliente SU customer.cust_order = circuit.cust_order
ISCRIVITI telefono per telefono.numero = numero cliente
DOVE circuitId = "somecircuit" OR telephone = "34234242"

L'ID del circuito impostato recupererà i dati del cliente o il numero di telefono.