# پایگاه‌های داده > SQL Server > T-SQL >  حذف رکورد های تکراری بر اساس فقط یک فیلد

## majidrezaei2007

چطور مي توان ركوردهاي كه يك فيلد تكراري دارند را در خروجي يك دستور select حذف كرد ؟
لازم به توضيح است كه از group by نمي توان استفاده كرد چون به تمام  فيلدهاي ركوردها نياز است، از Distinct هم نمي شود استفاده كرد چون  ركوردهاي تكراريي را حذف مي كند كه تمام مقادير فيلدهايشان يكي باشد

----------


## Mahmoud.Afrad

سلام
توی تاپیک 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

POPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP

----------

