更新语句中的SQL Server查询问题

时间:2019-07-09 09:24:32

标签: sql sql-server-2008

我有Table Job,其中有一个列名MainJob_Id名称 所以我只想将Container_TypeId列值更新为1,2,3 ...继续... 当MainJob_id相同时...

其他MainJob_id是新的,然后从1重新开始

enter image description here

预期结果

enter image description here

1 个答案:

答案 0 :(得分:3)

尝试使用可更新的CTE:

WITH cte AS (
    SELECT ContainerTypeId,
        ROW_NUMBER() OVER (PARTITION BY MainJob_Id ORDER BY LengthId DESC) rn
    FROM yourTable
)

UPDATE cte
SET ContainerTypeId = rn;

但是,您可能不希望执行此更新,而只是在查询时选择所需的顺序。