Az Oracle -ben végzett munka során néhány rekordon megkeresheti a másolatokat. Az ismétlődő sorokat eltávolíthatja azonosításukkal és a megfelelő RowID alias sorcím használatával. Mielőtt elkezdené, hozzon létre egy biztonsági mentési táblázatot arra az esetre, ha hivatkozásra van szüksége a rekord törlése után.
Lépés
1. módszer a 4 -ből: Ismétlődések azonosítása
1. lépés. Ismertesse az ismétlődéseket
Ebben a példában azonosítjuk az "Alan" másolatot. Győződjön meg arról, hogy a törlendő rekordok valóban másolatok, írja be az alábbi SQL -t.
2. lépés. Azonosítsa a "Név" című oszlopból
Abban az esetben, ha az oszlop címe "Név", akkor az "oszlop_neve" -t le kell cserélnie a Névre.
3. lépés. Határozza meg a többi oszlopot
Ha különböző oszlopokból próbálja azonosítani az ismétlődéseket, például Alan korát a neve helyett, írja be az „életkor” értéket az „oszlopnév” helyett, és így tovább.
válasszon oszlopnév, szám (oszlop_neve) táblázatcsoportból oszlopnév szerint, amelynek száma (oszlopnév)> 1;
2. módszer a 4 -ből: Egyetlen ismétlődés eltávolítása
1. lépés: Válassza ki a „név a nevekből” lehetőséget
Az "SQL" (rövidítve a szabványos lekérdezési nyelv) után írja be: "válasszon nevet a nevekből".
2. lépés Törölje az ismétlődő neveket tartalmazó összes sort
Az "SQL" után írja be: "delete from names where name = 'Alan';." Meg kell jegyezni, hogy a nagybetűk itt fontosak, hogy ez a lépés törölheti az összes "Alan" nevű sort. Az "SQL" után írja be a "véglegesítés" parancsot
3. lépés: Adja meg újra a sorokat ismétlődések nélkül
Most, hogy az összes sort törölte, és "Alan" -ra cserélte, töltsön be egyet az "insert into name values ('Alan');." Az "SQL" után írja be a "kötelezettségvállalás" parancsot egy új sor létrehozásához.
4. lépés: Tekintse meg az új listát
A fenti lépések elvégzése után ellenőrizheti, hogy nincsenek -e ismétlődő rekordok, ha beírja a "select * from names" -t.
SQL> válasszon nevet a nevek közül; Név ------------------------------ Alan Citra Tomi Alan Baris kiválasztva. SQL> törlés a nevekből, ahol name = 'Alan'; A sor törlődik. SQL> vállalja; / Elkötelezett. SQL> beillesztés a nevekbe értékek ('Alan'); sor létrehozva. SQL> vállalja; Elkötelezett. SQL> válasszon * a nevek közül; NAME ------------------------------ Alan Citra Tomi sorok kijelölve.
3. módszer a 4 -ből: Több ismétlés eltávolítása
1. lépés Válassza ki a törölni kívánt RID azonosítót
Az "SQL" után írja be: "select rowid, name from names;."
2. lépés. Távolítsa el az ismétlődéseket
Az "SQL" után írja be: "delete from names a a where rowid> (válassza ki a min (rowid) értéket a b nevekből, ahol b.name = a.name);" az ismétlődések eltávolításához.
3. lépés. Ellenőrizze az ismétlődéseket
A fenti lépések elvégzése után ellenőrizze az ismétlődéseket a "select rowid, name from names;" akkor "vállalni".
SQL> select rowid, name from names; ROWID NEVE ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan sorok kijelölve. SQL> törlés a nevekből a ahol sor> sorok törölve. SQL> select rowid, name from names; ROWID NEVE ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom sorok kijelölve. SQL> vállalja; Elkötelezett.
4. módszer a 4 -ből: Sorok törlése oszlopok szerint
1. lépés. Válassza ki a sort
Az "SQL" után írja be: "select * a nevek közül;" hogy lássam a vonalat.
2. lépés Az oszlopok azonosításával távolítsa el az ismétlődő sorokat
Az "SQL" után "írja be" törölje a nevekből a ahol a sor>> (válassza ki a min (rowid) lehetőséget a b nevekből, ahol b.név = a.név és b.age = a.age); " az ismétlődő rekordok eltávolításához.
3. lépés. Ellenőrizze az ismétlődéseket
Miután elvégezte a fenti lépéseket, írja be: "select * from names;" majd "kötelezze el", hogy megnézze, valóban eltávolították -e az ismétlődéseket.
SQL> válasszon * a nevek közül; NEV KOR ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 Alan 50 sorok kijelölve. SQL> törlés a nevekből a ahol sor> sor törölve. SQL> válasszon * a nevek közül; NEV KOR ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 sor kiválasztva. SQL> vállalja; Elkötelezett.
Figyelem
-
Hozzon létre egy ismétlődő táblázatot bejelentkezési adataiban, hogy tartalmi hivatkozásként használható legyen, ha nincsenek adatok törölve (ha kérdése van).
SQL> táblázat létrehozása alan.names_backup as select * névből; Táblázat létrehozva.