WITH q AS (
SELECT m.*, ROW_NUMBER() OVER (ORDER BY column) AS rn
FROM mytable m
)
UPDATE q
SET mycol = 'newvalue'
WHERE rn = @Y
Run Code Online (Sandbox Code Playgroud)
请注意,SQL没有隐式行顺序的概念.
n'th row除非您定义排序条件(column在上面的示例中),否则没有.
在此表中:
col1 col2
1 2
2 1
Run Code Online (Sandbox Code Playgroud)
,(1, 2)排序时排第一,排序依次排col1第二col2.