2012-05-29 10 views
11

Natknąłem się na nieco specjalną składnię, czy możesz pomóc w ustaleniu, co to znaczy? Dziękuję Ci.NUMER WIERSZY() PONAD

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

Również to się nie udaje. Jestem szczególnie zainteresowany bitem ROW NUMBER() OVER. Po raz pierwszy spotkałem się również z słowem kluczowym OVER.

Proszę dać mi znać, jeśli potrzebujesz pełnego przykładu. Skróciłem to nieco ze względu na jasność.

+4

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

Odpowiedz

9

funkcja ROW_NUMBER() wymaga NAD (bY) w celu określenia ekspresji ord er, że wiersze są ponumerowane. Domyślna kolejność jest rosnąca, ale można również użyć zniżania. Ta funkcja jest przydatna w przypadku różnych rzeczy, takich jak śledzenie wierszy podczas iteracji przez zestaw rekordów, ponieważ T-SQL nie pozwala na pobieranie kursora poza T-SQL. @tunimise fasipe jest poprawna, to brakuje _

+0

Dziękuję wam bardzo! To zabawne, ponieważ książka, którą czytam, zawiera kilka przykładów, za każdym razem bez podkreślenia. Byłem wprowadzony w błąd. Zrozumiałbym literówkę, ale 3 to samo? Wielkie dzięki. –

6

pamiętać, że brakuje podkreślenia w ROW_NUMBER

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

Co robi jest, że wypisuje numer wiersza każdego rekordu w tabeli produktów w kolejności były pobierane (na zlecenie IDProduktu)

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

I dodaje kolumnę ProductName dla jasności

+0

kolejności są pobierane określa się wg kolejności ubocznych ProductID w kolumnie Zamówienie ASC w tym przypadku. –