จากที่เคยเขียนบทความเรื่องการตรวจสอบ 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 ที่มีค่าซ้ำขึ้นมาเช่นกัน แต่ต่างกับโค้ดคำสั่งแรกตรงที่จะเป็นการดึงผลลัพธ์ขึ้นมาแสดงทั้งหมด แล้วจึงนับแถวที่มีค่าซ้ำเรียงกันไป ไม่แสดงเฉพาะแถวที่มีค่าซ้ำ