首页 > 解决方案 > 更新语句中的Sql Server查询问题

问题描述

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

否则 MainJob_id 是新的,然后重新开始为 1

在此处输入图像描述

执行结果

在此处输入图像描述

标签: sqlsql-server-2008

解决方案


尝试使用可更新的 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;

但是,您可能不想进行此更新,而只需在查询时选择所需的序列。


推荐阅读