ورود

View Full Version : حذف رکورد های تکراری بر اساس فقط یک فیلد



majidrezaei2007
چهارشنبه 18 مرداد 1391, 03:54 صبح
چطور مي توان ركوردهاي كه يك فيلد تكراري دارند را در خروجي يك دستور select حذف كرد ؟
لازم به توضيح است كه از group by نمي توان استفاده كرد چون به تمام فيلدهاي ركوردها نياز است، از Distinct هم نمي شود استفاده كرد چون ركوردهاي تكراريي را حذف مي كند كه تمام مقادير فيلدهايشان يكي باشد

Mahmoud.Afrad
چهارشنبه 18 مرداد 1391, 11:14 صبح
سلام
توی تاپیک C#‎ هم بهتون جواب دادم

برای این منظور کوئری زیر پاسخ شماست
سلکت با distinct فقط روی یک ستونselect-distinct-on-one-column
SELECT *
FROM (SELECT * , ROW_NUMBER()
OVER (PARTITION BY [SpecificColumnForDistinct] ORDER BY [ColumnForOrderBy]) AS RowID
FROM [Table_Name]
) AS dt
WHERE dt.RowID = 1
به جای SpecificColumnForDistinct نام فیلدی رو بنویسید که میخواهید تکراری نباشه
به جای ColumnForOrderBy هم نام فیلدی را برای مرتب کردن باید بنویسید
به جای Table_Name هم نام جدول را قرار بده.
اون عدد 1 رو هم اصلا دست نزنید.

sajadhaji
یک شنبه 26 بهمن 1393, 11:15 صبح
POPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP