یافتن رکورد های تکراری
با سلام و احترام
چگونه میتوانیم رکورد های تکراری را در یک جدول بیابیم
فرض که فیلدهای جدول ما Id , Name , Lname باشند.
5 پاسخ
لطفا به این 2 سوال هم در صورت امکان پاسخ دهید
1- چگونه میتوان رکورد های تکراری بهمراه آیدی آن را واکشی کرد
مثلا
2 حسین احمدی
14 حسین احمدی
20 حسین احمدی
250 علی رضایی
336 علی رضایی
...
2- چگونه میتوان فقط 1 ردیف از رکورد های تکراری نگه داشت و بقیه را حذف کرد.
مثلا یک نامی 7 بار تکرار شده 6 بار آن را حذف کرد و یکی را باقی کذاشت
ضمن تشکر . راهی که بنده به آن رسیدم. این است که میتوان براحتی با یک Foreach یک مورد را نگه داشت و بقیه را حذف کرد
ولی چگونه میتوان لیست رکورد های تکراری را بهمراه آیدی آنها واکشی کرد؟
پاسخ بالایی صرفا تعداد تکرار آنها را نشان می دهد.
سلام به شما دوست عزیز
بنده منظور شما رو متوجه نشدم یعنی به چه شکل تکراری باشد؟ اگر منظور شما این باشد که Name, Lname , Id تکراری باشد، که باید گفت این حالت ممکن نیست زیرا که در حالت پیش فرض خود sql server جلوی این اتفاق را میگیرد. حال اگر منظور شما این باشد که Name , Lname تکراری باشد را می توان با استفاده از کد زیر پیدا کرد.
select Name,Lname ,count(Id) from tbl1 group by Name,Lname having Count(id)>1
سلام
رکورد با مقادیر تکراری
مثلا:
1 مهدی عادلی
2 حسین احمدی
3 حسین احمدی
که پاسخ ردیف 2 و 3 است و پاسخ شما کامل بود.
سلام راهی که الان به نظرم می رسه اینه
with tempTable as( select Name,Lname,min(id) as minId from table1 group by Name,Lname having count(*)>1) delete from table1 where id in (select minId from tempTable)
البته این کد رو باید چند بار اجرا کنید یعنی تا وقتی که رکورد حذف می کنه اجرا کنید.