درخواست های ارتباط
جستجو
    لیست دوستان من
    صندوق پیام
    همه را دیدم
    • در حال دریافت لیست پیام ها
    صندوق پیام
    رویدادها
    همه را دیدم
    • در حال دریافت لیست رویدادها
    همه رویدادهای من
    اطلاعات مطلب
      مدرس/نویسنده
      حسین احمدی
      امتیاز: 464787
      رتبه:3
      340
      253
      402
      2671
      حسین احمدی ، بنیانگذار TOSINSO ، توسعه دهنده وب و برنامه نویس ، بیش از 12 سال سابقه فعالیت حرفه ای در سطح کلان ، مشاور ، مدیر پروژه و مدرس نهادهای مالی و اعتباری ، تخصص در پلتفرم دات نت و زبان سی شارپ ، طراحی و توسعه وب ، امنیت نرم افزار ، تحلیل سیستم های اطلاعاتی و داده کاوی ... پروفایل کاربر

      ویدیوهای پیشنهادی

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

      تاریخ 15 ماه قبل
      نظرات 0
      بازدیدها 936
      معمولاً در جداول بانک های اطلاعاتی و با درج تعداد زیاد رکورد و البته در صورتی که طراحی به صورتی باشد که این اجازه را بدهد! رکوردهای تکراری در جدول ثبت شده و تعداد این رکورد ها به مرور زمان افزایش پیدا می کند. در این مطلب با یک کوئری ساده آشنا می شویم که با کمک 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
      برچسب ها
      مطالب مرتبط

      در حال دریافت اطلاعات

      نظرات
      هیچ نظری ارسال نشده است

        برای ارسال نظر ابتدا به سایت وارد شوید

        arrow