НОМЕР ROW() OVER

Я столкнулся с некоторым особым синтаксисом, не могли бы вы понять, что это значит? Спасибо.

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

Кроме того, это не удается. Меня особенно интересует бит ROW NUMBER() OVER. Это первый раз, когда я столкнулся с ключевым словом OVER.

Пожалуйста, дайте мне знать, если вам нужен полный пример. Я немного сократил это ради ясности.

Ответ 1

Для функции ROW_NUMBER() требуется выражение OVER (ORDER BY) для определения порядка нумерации строк. Порядок по умолчанию - восходящий, но по убыванию также можно использовать. Эта функция полезна для множества вещей, таких как отслеживание строк при повторении через набор записей, поскольку T-SQL не позволяет извлекать курсор за пределами T-SQL. @tunimise fasipe верен, вам не хватает _

Ответ 2

Обратите внимание, что у вас отсутствует символ подчеркивания в ROW_NUMBER

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

Что он делает, так это то, что он печатает номер строки каждой записи в таблице продуктов в том порядке, в котором они были получены (как указано в ProductID)

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

Я добавил столбец ProductName для ясности