Sql Server’da bir tablodaki tekrar eden kayıtları nasıl silebiliriz ? L_User isminde bir tablo oluşturup tabloya bir kaç kayıt girelim. CREATE TABLE [dbo].[L_User] ( [ColumnId] [ int ] IDENTITY (1, 1) NOT NULL , [UserName] [ char ] (10) NULL , [UserPwd] [ char ] (10) NULL ) ON [ PRIMARY ] Böyle bir örnekte kesin ve doğru bir query şekli olmadığı için kişilere bağlı olarak farklı yöntemler kullanılabilir. while ile döngü kurma, cursor kullanmak, temporary table oluşturmak gibi yöntemler tercih edilebilir. Burada bunlardan bir iki tanesine örnek vereceğim. Bu yöntemlerden en kolayı, identity columndan yararlanmaktır. Tekrar eden kayıtları gruplayıp en küçük veya en büyük ID’lerini alıp diğerlerini sileceğiz. DELETE FROM L_User WHERE NOT ColumnId IN ( SELECT MIN (ColumnId) FROM L_User GROUP BY UserName,UserPwd ) Bu yönteme benzer olarak tabloyu kendisiyle JOIN edip eş kayıtları bulacağ
Yorumlar