در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

حذف سطرهای تکراری در SQL Server بوسیله یک کوئری ساده

معمولاً در جداول بانک های اطلاعاتی و با درج تعداد زیاد رکورد و البته در صورتی که طراحی به صورتی باشد که این اجازه را بدهد! رکوردهای تکراری در جدول ثبت شده و تعداد این رکورد ها به مرور زمان افزایش پیدا می کند. در این مطلب با یک کوئری ساده آشنا می شویم که با کمک PARTITION BY کلیه رکوردهای تکراری داخل یک جدول را به جز یکی از رکورد ها حذف می کند. فرض کنید جدولی با نام Employees داریم و مقادیر مشخص شده زیر را داخل آن درج کرده ایم:

Create table #Employees  
(  
  ID int, FirstName nvarchar(50), LastName nvarchar(50), Gender nvarchar(50), Salary int  
)  
  
GO  
Insert into #Employees values(1, 'Ali', 'Mohammadi', 'Male', 60000)  
Insert into #Employees values(1, 'Ali', 'Mohammadi', 'Male', 60000)  
Insert into #Employees values(1, 'Ali', 'Mohammadi', 'Male', 60000)  
Insert into #Employees values(2, 'Mohammad', 'Nasiri', 'Male', 30000)  
Insert into #Employees values(2, 'Mohammad', 'Nasiri', 'Male', 30000)  
Insert into #Employees values(3, 'Nasrin', 'Hooshyar', 'Female', 70000)  
Insert into #Employees values(3, 'Nasrin', 'Hooshyar', 'Female', 70000)  
Insert into #Employees values(3, 'Nasrin', 'Hooshyar', 'Female', 70000)

حال بوسیله اجرای کوئری زیر می توان کلیه رکوردهای تکراری جدولی که در بالا ایجاد کردیم، به جز یک رکورد را حذف کنیم:

WITH EmployeesCTE AS  
(  
  SELECT * , ROW_NUMBER()   
OVER  
(  
  PARTITION BY ID ORDER BY ID) AS RowNumber FROM #Employees  
)  
DELETE FROM EmployeesCTE WHERE RowNumber > 1

امیدوارم که این نکته مورد استفاده دوستان قرار بگیرد. ITPro باشید

نویسنده: حسین احمدی

منبع: ITpro

#آموزش_sql_server #نکات_sql_server #حذف_رکوردهای_تکراری_در_sql_server #استفاده_از_partition_ها_در_sql_server
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره پاییزه می تونی امروز ارزونتر از فردا خرید کنی ....