จากที่เคยเขียนบทความเรื่องการตรวจสอบ record ซ้ำในตารางด้วยคำสั่ง SQL Command ด้วยคำสั่ง
SELECT ชื่อcolที่ใช้เป็นเงื่อนไข , COUNT(*) count
FROM ชื่อตาราง
GROUP BY ชื่อcolที่ใช้เป็นเงื่อนไข Having COUNT(*) > 1
ซึ่งเมื่อใช้แล้วจะแสดงผลลัพธ์เฉพาะค่า record ที่มีจำนวนมากกว่า 1 แถว พร้อมนับจำนวนแถวที่ซ้ำขึ้นมาแสดง แต่ทั้งนี้ นอกจากคำสั่งดังกล่าวแล้ว ยังมีโค้ดคำสั่งแบบอื่นที่สามารถเรียกใช้เพื่อดูค่า record ซ้ำได้เช่นกัน นั่นคือ
SELECT *, ROW_NUMBER() OVER ( PARTITION BY ชื่อcolที่ใช้เป็นเงื่อนไข
ORDER BY ชื่อcolที่ใช้เป็นเงื่อนไข) AS ชื่อcolตั้งใหม่
FROM ชื่อตาราง
ตัวอย่าง
SELECT *, ROW_NUMBER() OVER ( PARTITION BY CITIZEN_ID
ORDER BY CITIZEN_ID) AS RN
FROM EMPLOYEE
ในโค้ดคำสั่งนี้ จะแสดงผลลัพธ์แถว record ที่มีค่าซ้ำขึ้นมาเช่นกัน แต่ต่างกับโค้ดคำสั่งแรกตรงที่จะเป็นการดึงผลลัพธ์ขึ้นมาแสดงทั้งหมด แล้วจึงนับแถวที่มีค่าซ้ำเรียงกันไป ไม่แสดงเฉพาะแถวที่มีค่าซ้ำ