[英]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.