Mostra clienti distinti nella tabella Clienti. Per esempio :
selezionare i clienti C.CUSTOMERIDFROM DISTINTI C
2
Mostra clienti distinti in tabella ORDINI . Per esempio :
SELEZIONA GLI ORDINI O.CUSTOMERIDFROM DISTINTI O
3
Determinare i clienti con ordini mancanti combinando i punti 1 e 2 in una subquery correlata
SELECT DISTINCT C.CUSTOMERIDFROM CLIENTI CWHERE NOT EXISTS ( SELECT * FROM ORDINI OWHERE O.CUSTOMERID = C.CUSTOMERID ) per
esiste è una funzione di Oracle che i test per l'esistenza di record restituiti sottoquery . Prefazione di test ", non" per l'assenza di registrazioni . Qui , la sottoquery soddisfa i clienti in entrambe le tabelle . Partite risultati restituiti , il che escluderebbe quelli abbinati CustomerId di dalla principale set di risultati . Solo CustomerId di senza partita O.CUSTOMERID verrebbe visualizzato .
4
alternativa, determinare i record mancanti da una visione composita di cusotmer e tavoli ordine.
SELECT DISTINCT C.CUSTOMERIDFROM CLIENTI C , ORDINI OWHERE C.CUSTOMERID = O.CUSTOMERID ( +) e O.CUSTOMERID è nullo
Se si sospetta la tabella ordine poteva mancare record , quindi provare questa query per visualizzare lato C.CUSTOMERID e O.CUSTOMERID a fianco. La ( + ) invoca un join esterno sinistro , che indica a Oracle di mostrare tutti i dati corrispondenti dalla WHERE plus ' s dalla tabella di sinistra che non hanno alcuna corrispondenza O.CUSTOMERID ' qualsiasi C.CUSTOMERID s nella tabella a destra .
Se ci sono ' s senza O.CUSTOMERID matching' C.CUSTOMERID s , essi mostrano con valori nulli per s l' inesistente O.CUSTOMERID ' . Le righe che dispongono di tali valori nulli rappresentano i record di ordini mancanti.
Se la lista è troppo lunga per l'ispezione visiva , la seconda istruzione WHERE garantisce i risultati sono limitati a s C.CUSTOMERID ' con gli ordini mancanti.
Programmazione © www.354353.com