Sql 获取行的动态索引
我创建了一个SQL查询,它以特定的方式对表中的所有行进行排序 问:如何获取行号索引?在这样一个动态创建的列表中的某一行 提前谢谢Sql 获取行的动态索引,sql,sql-server-2008,sql-server-2008-r2,ssms,Sql,Sql Server 2008,Sql Server 2008 R2,Ssms,我创建了一个SQL查询,它以特定的方式对表中的所有行进行排序 问:如何获取行号索引?在这样一个动态创建的列表中的某一行 提前谢谢 SELECT Row_NUMBER() OVER (ORDER BY <your criteria>) as RowIndex, other fields FROM MyTable 更新: 要将其添加为字段,可以执行以下操作: UPDATE T SET T.Indexfield = X.RowIndex FROM MyTable T INNER JOIN
SELECT Row_NUMBER() OVER (ORDER BY <your criteria>) as RowIndex, other fields
FROM MyTable
更新:
要将其添加为字段,可以执行以下操作:
UPDATE T
SET T.Indexfield = X.RowIndex
FROM MyTable T
INNER JOIN (SELECT Row_NUMBER() OVER (ORDER BY <your criteria>) as RowIndex, other fields
FROM MyTable) as X
ON X.<field> = T.<Field>
您想对第X行编号做什么?如果您只需要一个行索引,请在order by field1、field2等上使用row_number。在我将括号添加到row_number->row_number之前,这似乎不起作用。谢谢我如何循环遍历列表中的行,例如,将此新索引作为该行某列的值赋予该行?@acid-请参阅编辑。我认为更新语法是有效的,但您可能需要更改顺序MyTable T的含义是什么?我似乎无法理解它,也无法使它发挥作用。这是试图将对表的引用传递给变量T吗?这是伪代码。你们知道,你们需要输入真实的表名和字段名。