更新表中的第n条记录 - sql server

时间:2013-01-29 12:15:33

标签: sql sql-server sql-update

我希望update nth记录在表格中

UPDATE ROW_NUMBER(3) table_name SET column1=value1, column2=value2

这不起作用..

2 个答案:

答案 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