11

我遇到了一个有点特殊的语法,你能帮忙弄清楚它的意思吗?谢谢你。

SELECT ROW NUMBER() OVER (ORDER BY Product.ProductID) FROM Product;

此外,这失败了。我对那ROW NUMBER() OVER一点特别感兴趣。这也是我第一次遇到 OVER 关键字。

如果您需要完整的示例,请告诉我。为了清楚起见,我将其缩短了一点。

4

2 回答 2

10

ROW_NUMBER() 函数需要 OVER(ORDER BY) 表达式来确定行编号的顺序。默认顺序是升序,但也可以使用降序。由于 T-SQL 不允许在 T-SQL 之外检索游标,因此该函数可用于各种事情,例如在遍历一组记录时跟踪行。@tunimise fasipe 是正确的,你错过了 _

于 2012-05-30T01:24:42.570 回答
7

请注意,您在 ROW_NUMBER 中缺少下划线

SELECT ROW_NUMBER() OVER (ORDER BY Products.ProductID) FROM Products;

它的作用是按照检索到的顺序(按 ProductID 排序)打印出 products 表中每条记录的行号

e.g.
RowNumber   ProductName
------------------------
1           Flower
2           Bag
3           Car
...         ...

为了清楚起见,我添加了 ProductName 列

于 2012-05-30T00:12:37.273 回答