4 måter å slette dupliserte poster i Oracle

Innholdsfortegnelse:

4 måter å slette dupliserte poster i Oracle
4 måter å slette dupliserte poster i Oracle

Video: 4 måter å slette dupliserte poster i Oracle

Video: 4 måter å slette dupliserte poster i Oracle
Video: 3 Ways to Make More Money with Your Photography 2024, Kan
Anonim

Når du jobber i Oracle, kan du oppdage at noen av postene dine har duplikater. Du kan slette disse dupliserte radene ved å identifisere dem og bruke RowID- eller radadressen. Før du begynner, bør du opprette en sikkerhetskopiertabell i tilfelle du trenger å referere til dem etter at du har slettet poster.

Trinn

Metode 1 av 4: Identifisere duplikatet ditt

Slett dupliserte poster i Oracle Trinn 1
Slett dupliserte poster i Oracle Trinn 1

Trinn 1. Identifiser duplikatet

I dette tilfellet identifiser duplikatet "Alan". Sørg for at postene du prøver å slette faktisk er dubletter ved å skrive inn SQL nedenfor.

Slett dupliserte poster i Oracle Trinn 2
Slett dupliserte poster i Oracle Trinn 2

Trinn 2. Identifisere fra en kolonne som heter "Navn

"I forekomsten av en kolonne som heter" Navn ", erstatter du" column_name "med Navn.

Slett dupliserte poster i Oracle Trinn 3
Slett dupliserte poster i Oracle Trinn 3

Trinn 3. Identifisering fra andre kolonner

Hvis du prøvde å identifisere duplikatet med en annen kolonne, for eksempel alderen til Alan i stedet for navnet hans, ville du skrive inn "Alder" i stedet for "column_name" og så videre.

velg column_name, count (column_name) fra tabellgruppe etter column_name med count (column_name)> 1;

Metode 2 av 4: Slette et enkelt duplikat

Slett dupliserte poster i Oracle Trinn 4
Slett dupliserte poster i Oracle Trinn 4

Trinn 1. Velg "navn fra navn

"Etter" SQL ", som står for Standard Query Language, skriver du inn" velg navn fra navn ".

Slett dupliserte poster i Oracle Trinn 5
Slett dupliserte poster i Oracle Trinn 5

Trinn 2. Slett alle radene med duplikatnavnet

Etter "SQL", skriv inn "slett fra navn der name = 'Alan';." Vær oppmerksom på at store bokstaver er viktige her, så dette vil slette alle radene som heter "Alan". Etter "SQL" skriver du inn "commit".

Slett dupliserte poster i Oracle Trinn 6
Slett dupliserte poster i Oracle Trinn 6

Trinn 3. Leie raden uten duplikat

Nå som du har slettet alle radene med eksempelnavnet "Alan", kan du sette inn en tilbake ved å skrive "sett inn i navnverdier ('Alan');." Etter "SQL" skriver du inn "commit" for å opprette den nye raden.

Slett dupliserte poster i Oracle Trinn 7
Slett dupliserte poster i Oracle Trinn 7

Trinn 4. Se din nye liste

Når du har fullført trinnene ovenfor, kan du kontrollere at du ikke lenger har dupliserte poster ved å skrive inn "velg * fra navn."

SQL> velg navn fra navn; NAVN ------------------------------ Alan Carrie Tom Alan rader valgt. SQL> slett fra navn der name = 'Alan'; rader slettet. SQL> commit; Forplikt deg fullført. SQL> sett inn verdier i navn ('Alan'); rad opprettet. SQL> commit; Forplikt deg fullført. SQL> velg * fra navn; NAVN ------------------------------ Alan Carrie Tom rader valgt.

Metode 3 av 4: Slette flere duplikater

Slett dupliserte poster i Oracle Trinn 8
Slett dupliserte poster i Oracle Trinn 8

Trinn 1. Velg RowID du vil slette

Etter "SQL", skriv inn "velg rowid, navn fra navn;."

Slett dupliserte poster i Oracle trinn 9
Slett dupliserte poster i Oracle trinn 9

Trinn 2. Slett duplikatet

Etter "SQL", skriv "slett fra navn a hvor rowid> (velg min (rowid) fra navn b hvor b.name = a.name);" for å slette dupliserte poster.

Slett dupliserte poster i Oracle Trinn 10
Slett dupliserte poster i Oracle Trinn 10

Trinn 3. Se etter duplikater

Etter at du har fullført ovenstående, kontrollerer kommandoene om du fortsatt har duplikatoppføringer ved å skrive inn "velg rowid, navn fra navn;" og deretter "forplikte seg".

SQL> velg rowid, navn fra navn; ROWID NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan rader valgt. SQL> slett fra navn a hvor rowid> (velg min (rowid) fra navn b hvor b.name = a.name); rader slettet. SQL> velg rowid, navn fra navn; ROWID NAME ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom -rader er valgt. SQL> commit; Forplikt deg fullført.

Metode 4 av 4: Slette rader med kolonner

Slett dupliserte poster i Oracle Trinn 11
Slett dupliserte poster i Oracle Trinn 11

Trinn 1. Velg radene dine

Etter "SQL", skriv "velg * fra navn;" for å se radene dine.

Slett dupliserte poster i Oracle Trinn 12
Slett dupliserte poster i Oracle Trinn 12

Trinn 2. Slett dupliserte rader ved å identifisere kolonnen

Etter "SQL", skriv inn "slett fra navn a hvor rowid> (velg min (rowid) fra navn b hvor b.name = a.name og b.age = a.age);" for å slette de dupliserte postene.

Slett dupliserte poster i Oracle Trinn 13
Slett dupliserte poster i Oracle Trinn 13

Trinn 3. Se etter duplikater

Når du har fullført trinnene ovenfor, skriver du inn "velg * fra navn;" og deretter "forplikte" for å kontrollere at du har slettet duplikatoppføringene.

SQL> velg * fra navn; NAVNALDER ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 Alan 50 rader valgt. SQL> slett fra navn a hvor rowid> (velg min (rowid) fra navn b hvor b.name = a.name og b.age = a.age); rad slettet. SQL> velg * fra navn; NAVNALDER ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 rader valgt. SQL> commit; Forplikt deg fullført.

Advarsler

  • Lag en sikkerhetskopitabell i din egen pålogging som du kan bruke til å vise hva som var der før sletting skjedde (i tilfelle det er spørsmål).

    SQL> opprett tabell alan.names_backup som velg * fra navn; Tabellen er opprettet.

Anbefalt: