繁体   English   中英

用行号更新列

[英]Update Column with row number

我在SQL Server存储过程中有一个带有ID和日期列的临时表。 该表已经填充了日期,我希望能够根据日期以升序在id列中添加序列号

我尝试了以下

UPDATE #Weeks 
SET Id = (
          SELECT ROW_NUMBER() OVER (ORDER BY WeekDate ASC) AS Id 
          FROM #Weeks AS DATA);

并得到这个错误。

子查询返回的值超过1。 当子查询遵循=,!=,<,<=,>,> =或将子查询用作表达式时,不允许这样做。

任何帮助表示赞赏。

这对我有用.....

更新#Weeks SET Id = tab.Id FROM #Weeks w内加入(选择WeekDate,ROW_NUMBER()OVER(按WeekDate ASC排序)作为ID从#Weeks的ID)Tab ON w.WeekDate = Tab.WeekDate

尝试这个:

UPDATE #Weeks 
SET Id = Tab.Id
FROM #Week w
     INNER JOIN (
                 SELECT Id, 
                        ROW_NUMBER() OVER (ORDER BY WeekDate ASC) AS Id 
                 FROM #Weeks ) Tab ON w.Id = Tab.Id 

由于子查询返回的行多,而=运算符仅返回一行。

尝试这个

;with cte as
(
SELECT Id,ROW_NUMBER() OVER (ORDER BY WeekDate ASC) AS DATA FROM #Weeks 
)

UPDATE #Weeks SET Id=DATA from cte
  UPDATE #Weeks 
    SET Id = t.Id1
    FROM #Week w
    INNER JOIN
    (
      SELECT Id, ROW_NUMBER() OVER (ORDER BY WeekDate ASC) AS Id1 
      FROM #Weeks ) T ON w.Id = t.Id 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM