4 būdai, kaip ištrinti pasikartojančius įrašus „Oracle“

Turinys:

4 būdai, kaip ištrinti pasikartojančius įrašus „Oracle“
4 būdai, kaip ištrinti pasikartojančius įrašus „Oracle“

Video: 4 būdai, kaip ištrinti pasikartojančius įrašus „Oracle“

Video: 4 būdai, kaip ištrinti pasikartojančius įrašus „Oracle“
Video: 2018! Kaip aktyvuoti nemokamai Windows 2024, Balandis
Anonim

Dirbdami „Oracle“galite rasti kai kurių įrašų dublikatus. Pasikartojančias eilutes galite pašalinti jas identifikuodami ir naudodami atitinkamą „RowID“slapyvardžio eilutės adresą. Prieš pradėdami sukurkite atsarginę lentelę, jei po įrašo ištrynimo jums reikia nuorodos.

Žingsnis

1 metodas iš 4: Pasikartojančių tapatybių nustatymas

Ištrinkite pasikartojančius įrašus „Oracle“1 veiksme
Ištrinkite pasikartojančius įrašus „Oracle“1 veiksme

Žingsnis 1. Nustatykite dublikatus

Šiame pavyzdyje mes identifikuojame „Alan“dublikatą. Įsitikinkite, kad įrašai, kuriuos reikia ištrinti, iš tikrųjų yra pasikartojantys, įvesdami žemiau esantį SQL.

2 veiksme ištrinkite pasikartojančius įrašus
2 veiksme ištrinkite pasikartojančius įrašus

Žingsnis 2. Nustatykite iš stulpelio pavadinimu „Pavadinimas“

Jei stulpelio pavadinimas yra „Pavadinimas“, „stulpelio_pavadinimas“turite pakeisti pavadinimu.

Ištrinkite pasikartojančius įrašus „Oracle“3 veiksme
Ištrinkite pasikartojančius įrašus „Oracle“3 veiksme

Žingsnis 3. Nustatykite kitus stulpelius

Jei bandote nustatyti dublikatus iš skirtingų stulpelių, pvz., Alano amžių, o ne jo vardą, vietoj „column_name“įveskite „Age“ir pan.

pasirinkite stulpelio_pavadinimą, skaičių (stulpelio_pavadinimą) iš lentelių grupės pagal stulpelio_pavadinimą, kurio skaičius (stulpelio_pavadinimas)> 1;

2 metodas iš 4: atskirų dublikatų pašalinimas

Ištrinkite pasikartojančius įrašus „Oracle“4 veiksme
Ištrinkite pasikartojančius įrašus „Oracle“4 veiksme

Žingsnis 1. Pasirinkite „vardas iš vardų“

Po „SQL“(trumpas standartinės užklausos kalbos) įveskite „pasirinkite vardą iš pavadinimų“.

Ištrinkite pasikartojančius įrašus atlikdami „Oracle“5 veiksmą
Ištrinkite pasikartojančius įrašus atlikdami „Oracle“5 veiksmą

2 veiksmas. Ištrinkite visas eilutes su pasikartojančiais pavadinimais

Po „SQL“įveskite „delete from names where name = 'Alan';. Reikėtų pažymėti, kad didžiosios raidės čia yra svarbios, kad šis žingsnis galėtų ištrinti visas eilutes, pavadintas „Alan“. Po „SQL“įveskite „įsipareigoti“

Ištrinkite pasikartojančius įrašus „Oracle“6 veiksme
Ištrinkite pasikartojančius įrašus „Oracle“6 veiksme

Žingsnis 3. Iš naujo įveskite eilutes be dublikatų

Dabar, kai ištrynėte visas eilutes ir pakeitėte jas „Alan“, užpildykite dar vieną, įvesdami „insert into name values ('Alan');. Po „SQL“įveskite „įsipareigoti“, kad sukurtumėte naują eilutę.

Ištrinkite pasikartojančius įrašus „Oracle“7 veiksme
Ištrinkite pasikartojančius įrašus „Oracle“7 veiksme

Žingsnis 4. Peržiūrėkite naują sąrašą

Atlikę aukščiau nurodytus veiksmus, galite patikrinti, ar nėra pasikartojančių įrašų, įvesdami „pasirinkite * iš pavadinimų“.

SQL> pasirinkite vardą iš pavadinimų; PAVADINIMAS ------------------------------ Alanas Citra Tomi Alanas Barisas pasirinktas. SQL> ištrinti iš pavadinimų, kur vardas = 'Alanas'; Eilutė ištrinta. SQL> įsipareigoja; / Įsipareigojimas baigtas. SQL> įterpti į vardus reikšmes ('Alan'); eilutė sukurta. SQL> įsipareigoja; Įsipareigojimas baigtas. SQL> pasirinkite * iš pavadinimų; PAVADINIMAS ------------------------------ Pasirinktos Alano Citros Tomi eilutės.

3 metodas iš 4: kelių dublikatų pašalinimas

Ištrinkite pasikartojančius įrašus „Oracle“8 veiksme
Ištrinkite pasikartojančius įrašus „Oracle“8 veiksme

Žingsnis 1. Pasirinkite RowID, kurį norite ištrinti

Po „SQL“įveskite „select rowid, name from names;.“

Ištrinkite pasikartojančius įrašus atlikdami „Oracle“9 veiksmą
Ištrinkite pasikartojančius įrašus atlikdami „Oracle“9 veiksmą

2 veiksmas. Pašalinkite dublikatus

Po „SQL“įveskite „ištrinti iš pavadinimų a kur rowid> (pasirinkite min (rowid) iš pavadinimų b, kur b.name = a.name);" pašalinti dublikatus.

Ištrinkite pasikartojančius įrašus „Oracle“10 veiksme
Ištrinkite pasikartojančius įrašus „Oracle“10 veiksme

Žingsnis 3. Patikrinkite, ar nėra dublikatų

Atlikę aukščiau nurodytus veiksmus, patikrinkite, ar nėra dublikatų, įvesdami „pasirinkite eilutę, vardą iš vardų“; tada „įsipareigoti“.

SQL> pasirinkite eilutę, pavadinimą iš pavadinimų; ROWID PAVADINIMAS ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan eilutės pasirinktos. SQL> ištrinti iš pavadinimų a kur rowid> (pasirinkite min (rowid) iš pavadinimų b, kur b.name = a.name); eilutės ištrintos. SQL> pasirinkite eilutę, pavadinimą iš pavadinimų; ROWID PAVADINIMAS ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Pasirinktos Tom eilutės. SQL> įsipareigoja; Įsipareigojimas baigtas.

4 metodas iš 4: eilučių ištrynimas pagal stulpelius

Ištrinkite pasikartojančius įrašus „Oracle“11 veiksme
Ištrinkite pasikartojančius įrašus „Oracle“11 veiksme

Žingsnis 1. Pasirinkite eilutę

Po „SQL“įveskite „select * from names;“kad galėtum pamatyti liniją.

Ištrinkite pasikartojančius įrašus „Oracle“12 veiksme
Ištrinkite pasikartojančius įrašus „Oracle“12 veiksme

2 veiksmas. Pašalinkite pasikartojančias eilutes, identifikuodami jų stulpelius

Po "SQL" "įveskite" ištrinkite iš pavadinimų a kur rowid> (pasirinkite min (rowid) iš pavadinimų b, kur b.name = a.name ir b.age = a.age); " pašalinti pasikartojančius įrašus.

Ištrinkite pasikartojančius įrašus „Oracle“13 veiksme
Ištrinkite pasikartojančius įrašus „Oracle“13 veiksme

Žingsnis 3. Patikrinkite, ar nėra dublikatų

Kai atliksite aukščiau nurodytus veiksmus, įveskite "pasirinkite * iš pavadinimų;" tada „įsipareigoti“, kad pamatytumėte, ar dublikatai iš tikrųjų buvo pašalinti.

SQL> pasirinkite * iš pavadinimų; VARDAS AMŽIUS ------------------------------ ---------- Alanas 50 Citra 51 Tomi 52 Alanas 50 pasirinktos eilutės. SQL> ištrinti iš pavadinimų a kur rowid> (pasirinkite min (rowid) iš pavadinimų b, kur b.name = a.name ir b.age = a.age); eilutė ištrinta. SQL> pasirinkite * iš pavadinimų; VARDAS AMŽIUS ------------------------------ ---------- Alanas 50 Citra 51 Tomi pasirinktos 52 eilutės. SQL> įsipareigoja; Įsipareigojimas baigtas.

Įspėjimas

  • Prisijungę sukurkite lentelės dublikatą, kad ji galėtų būti naudojama kaip turinio nuoroda, kai duomenys nebuvo ištrinti (jei turite klausimų).

    SQL> sukurti lentelę alan.names_backup kaip pasirinkti * iš pavadinimų; Lentelė sukurta.

Rekomenduojamas: