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

สารบัญ:

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

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

วีดีโอ: 4 วิธีในการลบบันทึกที่ซ้ำกันใน Oracle
วีดีโอ: วิธีใช้ Microsoft Office 365 ของแท้ ง่ายๆ ได้ฟรีๆ #catch5 #มือใหม่ใช้คอม #office #msoffice 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 ระบุจากคอลัมน์ชื่อ "ชื่อ"

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

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

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

หากคุณกำลังพยายามระบุรายการซ้ำจากคอลัมน์ต่างๆ เช่น อายุของอลันแทนที่จะเป็นชื่อของเขา ให้ป้อน "อายุ" แทน " 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. ดูรายการใหม่

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

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

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

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

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

หลังจาก "SQL" ให้ป้อน " เลือก rowid ชื่อจากชื่อ;."

ลบ 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;" จากนั้น " commit " เพื่อดูว่ารายการที่ซ้ำกันถูกลบออกจริงหรือไม่

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

คำเตือน

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

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

แนะนำ: