SQL’de tekrar eden kayıtları bulmak
SQL’de tekrar eden kayıtları bulmak
Bazı durumlarda veri tabanında bulunan tablolalarınızda tekrar eden kayıtları bulup silme güncelleme vb. işlemleri yapmanız gerekiyorsa, aşağıdaki teknikler sayesinde tekrar eden (duplicate) kayıtları bulabilir ve istediğiniz işlemleri gerçekleştirebilirsiniz.
1. Teknik
DECLARE @Duplicate TABLE ( ID int identity(1,1) not null , Fname varchar (10) not null , Lname varchar (10) not null , City varchar (10) not null ) INSERT INTO @Duplicate VALUES ( 'Tülin' , 'Bağal' , 'İstanbul' ) INSERT INTO @Duplicate VALUES ( 'Murat' , 'Öz' , 'İstanbul' ) INSERT INTO @Duplicate VALUES ( 'Mehmet' , 'Karan' , 'İzmir' ) INSERT INTO @Duplicate VALUES ( 'Murat' , 'Öz' , 'İstanbul' ) INSERT INTO @Duplicate VALUES ( 'Mehmet' , 'Karan' , 'İzmir' ) --Bu kullanım SQL Server 2005 ve üst versiyonlar içindir. ; WITH CTE as ( SELECT ROW_NUMBER() OVER(PARTITION BY FName, Lname,City ORDER BY ( SELECT 1)) AS RowID, * FROM @Duplicate ) SELECT ID, FName, Lname,RowID FROM CTE --WHERE RowID = 1 |
2. Teknik
Create Table SelectDuplicate (ID int identity(1,1) not null , Fname varchar (10) not null , Lname varchar (10) not null , City varchar (10) not null ) INSERT INTO SelectDuplicate VALUES ( 'Tülin' , 'Bağal' , 'İstanbul' ) INSERT INTO SelectDuplicate VALUES ( 'Murat' , 'Öz' , 'İstanbul' ) INSERT INTO SelectDuplicate VALUES ( 'Mehmet' , 'Karan' , 'İzmir' ) INSERT INTO SelectDuplicate VALUES ( 'Murat' , 'Öz' , 'İstanbul' ) INSERT INTO SelectDuplicate VALUES ( 'Mehmet' , 'Karan' , 'İzmir' ) SELECT * FROM SelectDuplicate WHERE ID NOT IN ( SELECT MAX (ID) FROM SelectDuplicate GROUP BY Fname,Lname)
KAYNAK |
Hiç yorum yok