2012-05-29 2 views
11

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

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

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

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

+4

http://msdn.microsoft.com/en-us/library/ms186734.aspx –

ответ

9

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

+0

Спасибо вам большое! Это смешно, потому что книга, которую я читаю, содержит несколько примеров, каждый раз без подчеркивания. Я был введен в заблуждение. Я бы понял опечатку, но 3 из того же? Большое спасибо. –

6

Обратите внимание, что не хватает подчеркивание в ROW_NUMBER

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

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

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

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

+0

Заказ, который они извлекают, определяется ORDER BY - столбцом ProductID в Приказ ASC в этом случае. –

Смежные вопросы