بهار آموزش با تخفیف های شگفت انگیز توسینسو بهار آموزش با تخفیف های شگفت انگیز توسینسو
مانده تا پایان تخفیف
مشاهده دوره ها
0

یافتن رکورد های تکراری

با سلام و احترام

چگونه میتوانیم رکورد های تکراری را در یک جدول بیابیم

فرض که فیلدهای جدول ما Id , Name , Lname باشند.

پرسیده شده در 1396/05/07 توسط

5 پاسخ

0

لطفا به این 2 سوال هم در صورت امکان پاسخ دهید

1- چگونه میتوان رکورد های تکراری بهمراه آیدی آن را واکشی کرد

مثلا

2 حسین احمدی

14 حسین احمدی

20 حسین احمدی

250 علی رضایی

336 علی رضایی

...

2- چگونه میتوان فقط 1 ردیف از رکورد های تکراری نگه داشت و بقیه را حذف کرد.

مثلا یک نامی 7 بار تکرار شده 6 بار آن را حذف کرد و یکی را باقی کذاشت

پاسخ در 1396/05/07 توسط
0

ضمن تشکر . راهی که بنده به آن رسیدم. این است که میتوان براحتی با یک Foreach یک مورد را نگه داشت و بقیه را حذف کرد

ولی چگونه میتوان لیست رکورد های تکراری را بهمراه آیدی آنها واکشی کرد؟

پاسخ بالایی صرفا تعداد تکرار آنها را نشان می دهد.

پاسخ در 1396/05/08 توسط
1

سلام به شما دوست عزیز

بنده منظور شما رو متوجه نشدم یعنی به چه شکل تکراری باشد؟ اگر منظور شما این باشد که Name, Lname , Id تکراری باشد، که باید گفت این حالت ممکن نیست زیرا که در حالت پیش فرض خود sql server جلوی این اتفاق را میگیرد. حال اگر منظور شما این باشد که Name , Lname تکراری باشد را می توان با استفاده از کد زیر پیدا کرد.

select Name,Lname ,count(Id)
from tbl1
group by Name,Lname
having Count(id)>1
پاسخ در 1396/05/07 توسط
0

سلام

رکورد با مقادیر تکراری

مثلا:

1 مهدی عادلی

2 حسین احمدی

3 حسین احمدی

که پاسخ ردیف 2 و 3 است و پاسخ شما کامل بود.

پاسخ در 1396/05/07 توسط
0

سلام راهی که الان به نظرم می رسه اینه

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) 

البته این کد رو باید چند بار اجرا کنید یعنی تا وقتی که رکورد حذف می کنه اجرا کنید.

پاسخ در 1396/05/08 توسط

پاسخ شما