ThaiSQL.COM Wiki and Forum
หน้าแรก
กระดานถามตอบ
ประวัติ
เขียนบทความ
บทความ
หมวด
Login/Logout
Your Profile
Create Account
Quick Search
»
Advanced Search »
Back
SS090602 - ลบรายการที่มีข้อมูลซ้ำกัน
Modified on 2009/06/23 14:00
by
ninefyi
Categorized as
SQL Server
สวัสดีครับ วันนี้ผมขอนำเสนอวิธีการค้นหาข้อมูลที่ซ้ำกัน แล้วทำการลบออก โดยที่ไม่สนใจว่าจะต้องลบแถวไหน ดังนั้นถ้ามีซ้ำกันก็ลบที่ซ้ำออกเลยอันเดียวเลยนะครับ โดยใช้ ROW_NUMBER() ร่วมกับ PARTITION BY นะครับ สามารถใช้ได้ทั้ง SQL Server 2005 และ SQL Server 2008 นะครับ ยังไงก็ลองดูละกันนะครับ จาก [http://blog.sqlauthority.com/2009/06/23/sql-server-2005-2008-delete-duplicate-rows/|sqlauthority] {{{{CREATE TABLE TEMP ( Col1 INT, Col2 INT ) GO}}}} {{{{INSERT INTO TEMP SELECT 1, 1 UNION ALL SELECT 1, 1 UNION ALL SELECT 1, 1 UNION ALL SELECT 1, 2 UNION ALL SELECT 1, 2 UNION ALL SELECT 1, 3 UNION ALL SELECT 1, 4 GO}}}} {{{{SELECT * FROM TEMP GO}}}} {{{{WITH CTE(Col1, Col2, DuplicateCount) AS( SELECT Col1 , Col2 , ROW_NUMBER() OVER(PARTITION BY Col1, Col2 ORDER BY Col1) AS DuplicateRow FROM TEMP ) DELETE FROM CTE WHERE DuplicateRow > 1 SELECT * FROM TEMP DROP TABLE TEMP}}}}
Meta Keywords:
Meta Description:
Change Comment: