4 วิธีในการลบบันทึกที่ซ้ำกันใน Oracle

สารบัญ:

4 วิธีในการลบบันทึกที่ซ้ำกันใน Oracle
4 วิธีในการลบบันทึกที่ซ้ำกันใน Oracle

วีดีโอ: 4 วิธีในการลบบันทึกที่ซ้ำกันใน Oracle

วีดีโอ: 4 วิธีในการลบบันทึกที่ซ้ำกันใน Oracle
วีดีโอ: การจัดเก็บไฟล์ภาพยนตร์แบบดิจิทัล ๑๐๑ 2024, อาจ
Anonim

เมื่อทำงานใน Oracle คุณอาจพบว่าบันทึกบางรายการของคุณมีข้อมูลซ้ำซ้อน คุณสามารถลบแถวที่ซ้ำกันเหล่านี้ได้โดยการระบุและใช้ RowID หรือที่อยู่ของแถว ก่อนที่คุณจะเริ่มต้น คุณควรสร้างตารางสำรองในกรณีที่คุณจำเป็นต้องอ้างอิงหลังจากคุณลบระเบียนแล้ว

ขั้นตอน

วิธีที่ 1 จาก 4: ระบุรายการซ้ำของคุณ

ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 1
ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 1

ขั้นตอนที่ 1 ระบุรายการที่ซ้ำกัน

ในกรณีนี้ ให้ระบุตัวอย่างที่ซ้ำกัน "Alan" ตรวจสอบให้แน่ใจว่าระเบียนที่คุณพยายามลบนั้นซ้ำกันจริง ๆ โดยป้อน SQL ด้านล่าง

ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 2
ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 2

ขั้นตอนที่ 2 การระบุจากคอลัมน์ชื่อ "Names

"ในกรณีของคอลัมน์ชื่อ "Names" คุณจะต้องแทนที่ "column_name" ด้วย Names

ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 3
ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 3

ขั้นตอนที่ 3 การระบุจากคอลัมน์อื่น

หากคุณกำลังพยายามระบุชื่อที่ซ้ำกันโดยใช้คอลัมน์อื่น เช่น อายุของอลันแทนที่จะเป็นชื่อของเขา คุณจะต้องป้อน "Ages" แทน "column_name" เป็นต้น

เลือก column_name, count(column_name) จากกลุ่มตารางตาม column_name มี count (column_name) > 1;

วิธีที่ 2 จาก 4: การลบรายการซ้ำ

ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 4
ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 4

ขั้นตอนที่ 1. เลือก "ชื่อจากชื่อ

"หลัง "SQL" ซึ่งย่อมาจาก Standard Query Language ให้ป้อน "select name from names"

ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 5
ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 5

ขั้นตอนที่ 2 ลบแถวทั้งหมดที่มีชื่อซ้ำกัน

หลัง "SQL" ให้ป้อน "delete from names where name='Alan';" โปรดทราบว่าการใช้อักษรตัวพิมพ์ใหญ่เป็นสิ่งสำคัญในที่นี้ ดังนั้นการดำเนินการนี้จะลบแถวทั้งหมดที่ชื่อ "Alan" หลัง "SQL" ให้ป้อน "commit"

ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 6
ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 6

ขั้นตอนที่ 3 เช่าแถวโดยไม่ซ้ำกัน

ตอนนี้ คุณได้ลบแถวทั้งหมดที่มีชื่อตัวอย่างว่า "Alan " แล้ว คุณสามารถแทรกแถวหลังหนึ่งแถวโดยป้อน "insert into name values ('Alan');" หลังจาก "SQL" ให้ป้อน "commit" เพื่อสร้างแถวใหม่ของคุณ

ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 7
ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 7

ขั้นตอนที่ 4. ดูรายการใหม่ของคุณ

เมื่อคุณทำตามขั้นตอนข้างต้นเสร็จแล้ว คุณสามารถตรวจสอบให้แน่ใจว่าคุณไม่มีบันทึกที่ซ้ำกันอีกต่อไปโดยป้อน "เลือก * จากชื่อ"

SQL > เลือกชื่อจากชื่อ; NAME ------------------------------ Alan Carrie Tom Alan เลือกแถวแล้ว SQL > ลบออกจากชื่อโดยที่ name='Alan'; แถวที่ถูกลบ SQL > กระทำ; มุ่งมั่นเสร็จสมบูรณ์ SQL > ใส่ค่าชื่อ ('Alan'); สร้างแถวแล้ว SQL > กระทำ; มุ่งมั่นเสร็จสมบูรณ์ SQL > เลือก * จากชื่อ; NAME ------------------------------ เลือกแถวของ Alan Carrie Tom

วิธีที่ 3 จาก 4: การลบรายการที่ซ้ำกันหลายรายการ

ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 8
ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 8

ขั้นตอนที่ 1 เลือก RowID ที่คุณต้องการลบ

หลัง "SQL" ให้พิมพ์ "select rowid, name from names;."

ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 9
ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 9

ขั้นตอนที่ 2. ลบรายการที่ซ้ำกัน

หลังจาก "SQL " ให้ป้อน "ลบออกจากชื่อ a โดยที่ rowid > (เลือก min(rowid) จากชื่อ b โดยที่ b.name=a.name);" เพื่อลบบันทึกที่ซ้ำกัน

ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 10
ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 10

ขั้นตอนที่ 3 ตรวจสอบรายการซ้ำ

หลังจากที่คุณดำเนินการข้างต้นเสร็จแล้ว คำสั่งจะตรวจสอบเพื่อดูว่าคุณยังมีระเบียนที่ซ้ำกันหรือไม่โดยป้อน "select rowid, name from names;" แล้ว "ลงมือทำ"

SQL > เลือก rowid, ชื่อจากชื่อ; ชื่อ ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Alan แถวที่เลือก SQL > ลบออกจากชื่อ a โดยที่ rowid > (เลือก min(rowid) จากชื่อ b โดยที่ b.name=a.name); แถวที่ถูกลบ SQL > เลือก rowid, ชื่อจากชื่อ; ชื่อ ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom เลือกแถวแล้ว SQL > กระทำ; มุ่งมั่นเสร็จสมบูรณ์

วิธีที่ 4 จาก 4: การลบแถวที่มีคอลัมน์

ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 11
ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 11

ขั้นตอนที่ 1. เลือกแถวของคุณ

หลัง "SQL" ให้ป้อน "select * from names;" เพื่อดูแถวของคุณ

ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 12
ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 12

ขั้นตอนที่ 2 ลบแถวที่ซ้ำกันโดยระบุคอลัมน์

หลังจาก "SQL'" ให้ป้อน "ลบออกจากชื่อ a โดยที่ rowid > (เลือก min(rowid) จากชื่อ b โดยที่ b.name=a.name และ b.age=a.age);" เพื่อลบบันทึกที่ซ้ำกัน

ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 13
ลบ Duplicate Records ใน Oracle ขั้นตอนที่ 13

ขั้นตอนที่ 3 ตรวจสอบรายการซ้ำ

เมื่อคุณทำตามขั้นตอนข้างต้นเสร็จแล้ว ให้ป้อน "select * from names;" แล้ว "ตกลง" เพื่อตรวจสอบว่าคุณได้ลบระเบียนที่ซ้ำกันเรียบร้อยแล้ว

SQL > เลือก * จากชื่อ; ชื่อ อายุ ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 Alan 50 แถวที่เลือก SQL > ลบออกจากชื่อ a โดยที่ rowid > (เลือก min(rowid) จากชื่อ b โดยที่ b.name=a.name และ b.age=a.age); ลบแถวแล้ว SQL > เลือก * จากชื่อ; ชื่ออายุ ------------------------------ ---------- Alan 50 Carrie 51 Tom 52 แถวที่เลือก. SQL > กระทำ; มุ่งมั่นเสร็จสมบูรณ์

คำเตือน

  • สร้างตารางสำรองในการลงชื่อเข้าใช้ของคุณเอง ซึ่งคุณสามารถใช้เพื่อแสดงสิ่งที่อยู่ที่นั่นก่อนที่จะมีการลบเกิดขึ้น (ในกรณีที่มีคำถามใดๆ)

    SQL > สร้างตาราง alan.names_backup เป็น select * จากชื่อ; สร้างตารางแล้ว

แนะนำ: