Avsaknad av ifrågasatte data tyder enda för närvarande inte är närvarande. En saknad post är dock uppgifter som kan eller bör finnas , men är det inte. Till exempel , kunduppgifter och order bosatta i tabellerna Kunder och Order . En kund lista begärs , och ni, programmeraren , antar varje kund har en beställning . Ger kunderna beställningar bör ge rätt kund listan, men hur? Lista kunder från kunder kan ge mer , vilket tyder på vissa kunder har saknas beställningar . Du måste kontrollera vilka kunder som saknas beställningar och sedan förstår om detta förhållande är avsiktligt eller en bugg .
1
uppvisar olika kunder i tabellen Kunder . . Till exempel :
SELECT DISTINCT C. Kundnr
FRÅN KUNDER C
2
uppvisar olika kunder i tabellen Order . Till exempel :
SELECT DISTINCT O. Kundnr
från beställningar O
3
Bestäm kunderna saknas beställningar genom att kombinera steg 1 och 2 i ett . korrelerade underfråga .
SELECT DISTINCT C. Kundnr
FRÅN KUNDER C
VAR INTE EXISTS
( SELECT *
från beställningar O
där o . CustomerID=C. Kundnr )
finns är en Oracle -funktion som testar för existensen av returnerade delfråga poster . Vilken inledde med ” INTE ” tester för avsaknaden av poster . Här matchar underfrågan kunder i båda tabellerna. Matcher återvända resultat , vilket skulle utesluta dem som matchas Kundnr : s från den huvudsakliga resultatet . Bara CustomerID är utan O. Kundnr matchen skulle visas .
4 .
Alternativt avgöra saknas uppgifter från en sammansatt bild av CUSOTMER och ORDER tabeller .
SELECT DISTINCT C. Kundnr
FRÅN KUNDER C , order O
VAR C. Kundnr=O. Kundnr (+ )
och O. Kundnr är null
Om du misstänker att beställa bord kan missa poster , då Prova denna fråga för att visa C. Kundnr och O. Kundnr sida vid sida . På (+ ) åberopar en vänster yttre koppling , som berättar Oracle för att visa alla matchande data från WHERE plus alla C. Kundnr är från vänster bord som inte har någon matchande O. Kundnr är på höger sida bordet .
Om det finns C. Kundnr är med någon matchande O. Kundnr ' s , kommer de att visa med null -värden för den obefintliga O. Kundnr ' s. Raderna med sådana nulltecken företräda saknas beställa skivor .
Om listan är för lång för visuell inspektion , den andra WHERE ser resultaten är begränsade till C. Kundnr är med saknas beställningar .
tips och varningar