我希望update
nth
记录在表格中
UPDATE ROW_NUMBER(3) table_name SET column1=value1, column2=value2
这不起作用..
答案 0 :(得分:6)
如果您使用的是SQL Server 2005以上,请使用CTE。
您可以尝试以下方法(我的语法在设计上变得太长了):
WITH CTE AS
(
SELECT ROW_NUMBER() OVER (ORDER BY columnToUseForOrder) AS RowNumber,
column1,
column2
FROM table_Name
)
UPDATE CTE Set column1= value1, column2=value2 WHERE RowNumber = 3
使用CTE,您应该能够更新第n行。玩弄这个,你应该能够提出各种解决方案。
答案 1 :(得分:2)
row_number
将按照orderingColumn
的顺序排列。因此,请根据需要进行更换。 @value1, @value2
和@Nth_Number
是变量。
update A set column1= @value1, column2= @value2
from ( select column1, column2,
row_number() over (order by orderingColumn) rn from yourTable) A
where rn = @Nth_Number
如果您的value1, value2
是列,请尝试
update A set column1= value1, column2= value2
from ( select column1, column2, value1, value2
row_number() over (order by orderingColumn) rn from yourTable) A
where rn = @Nth_Number