Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako nájsť chýbajúce záznamy pomocou SQL

Neprítomnosť opýtaných dát iba naznačuje , v súčasnej dobe nie je k dispozícii . Chýbajúce záznam , však, sú dáta , ktorá by mohla , alebo by mal byť prítomný , ale nie je . Napríklad , detaily zákazníkov a objednávky sú umiestnené v tabuľkách Zákazníci a objednávky . Zoznam zákazník požaduje , a vy , programátor , prevziať každý zákazník má objednávky . Poskytovanie zákazníkov z objednávok by mali poskytovať správne zoznam zákazníkov , ale to ? Výpis zákazníkov od zákazníkov môže priniesť viac , čo naznačuje , niektorí zákazníci chýba objednávky . Musíte zistiť , ktoré zákazníci chýba objednávky a potom pochopíte , ak táto okolnosť je zámerné alebo chybou . Návod dovolená 1

Zobraziť odlišné zákazníkmi v ZÁKAZNÍKOV tabuľke . Napríklad :

SELECT DISTINCT C.CUSTOMERIDFROM ZÁKAZNÍKOV C
2

Zobraziť odlišné zákazníkmi v tabuľke objednávky . Napríklad :

SELECT DISTINCT O.CUSTOMERIDFROM OBJEDNÁVKY O
3

Určte zákazníkov s chýbajúcimi zákaziek tým , že kombinuje kroky 1 a 2 na korelačné poddotaz

SELECT DISTINCT C.CUSTOMERIDFROM ZÁKAZNÍCI CWHERE NOT EXISTS ( SELECT * FROM OBJEDNÁVKY OWHERE O.CUSTOMERID = C.CUSTOMERID )

existuje , je funkcia Oracle , ktorý testuje existenciu vrátenej poddotaz záznamov . Prefacing testy " nie" pre absenciu evidencie. Tu poddotaz zodpovedá zákazníkov v oboch tabuľkách . Zápas získali výsledky , ktoré by sa vylučujú tie , uzavreté ČísloZákazníka je z hlavnej sady výsledkov . Iba KódZákazníka je bez O.CUSTOMERID zápas bude zobrazená .
4

Prípadne určiť chýbajúce záznamy z kompozitného pohľadu cusotmer a poradie tabuliek .

SELECT DISTINCT C.CUSTOMERIDFROM Zákazníci C , OBJEDNÁVKY OWHERE C.CUSTOMERID = O.CUSTOMERID ( + ) a O.CUSTOMERID je null

Ak si myslíte Objednať tabuľka by mohla byť chýbajúce záznamy , potom skúste tento dotaz zobraziť C.CUSTOMERID a O.CUSTOMERID stranu od seba . ( + ) Vyvolá ľavej vonkajšie spojenie , ktorá hovorí , Oracle , aby ukázať všetky zodpovedajúce dáta z WHERE príkazu plus všetky C.CUSTOMERID je z tabuľky vľavo , ktoré nemajú zodpovedajúce O.CUSTOMERID je v pravej strane stola .

Ak sú C.CUSTOMERID ' s sa žiadny zodpovedajúci O.CUSTOMERID ' s , budú ukazovať s hodnotami NULL pre neexistujúce O.CUSTOMERID je . Riadky, ktoré majú také hodnoty Null predstavuje chýbajúce poradí záznamov .

Keď je zoznam príliš dlhý pre vizuálnu kontrolu , druhý WHERE vyhlásenia zabezpečí , že výsledky sú obmedzené na C.CUSTOMERID je s chýbajúcimi objednávky .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené