【发布时间】:2013-12-04 00:47:02
【问题描述】:
我在 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 来自#Weeks w 内部联接 ( 选择星期日期, ROW_NUMBER() OVER (ORDER BY WeekDate ASC) 作为 Id FROM #Weeks ) 标签打开 w.WeekDate = Tab.WeekDate
【问题讨论】:
-
用行号更新列 ?这不是个好主意!
-
@mehdi 有什么好主意?
标签: sql sql-server