requête sql qui mettra à jour l'logging avec des valeurs incrémentielles

avoir une tentation comme suit

1. id empid sortingggerstatus 1 2881 null 2 2881 null 3 2881 null 4 2882 null 

J'ai besoin d 'une requête SQL qui mettra à jour le sortingggerstatus dynamicment à sortingggerstatus + 1 si le empid est répété deux fois, sortingce, etc.

mon résultat devrait ressembler à

 id empid sortingggerstatus 1 2881 1 2 2881 2 3 2881 3 4 2882 1 

Si vous avez SQL Server 2005+, vous pouvez utiliser une fonction CTE et ROW_NUMBER Windowing:

 WITH cte AS ( SELECT id, empId, sortingggerStatus , ROW_NUMBER() OVER (PARTITION BY empId ORDER BY id ASC) AS RowNumber FROM yourTable ) UPDATE t SET sortingggerStatus = RowNumber FROM yourTable AS t INNER JOIN cte ON t.id = cte.id 

Vous pouvez append une clause WHERE s'il existe des loggings pour lesquels vous ne souhaitez pas mettre à jour sortingggerStatus .