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
.