2012-05-29 12 views
11

私は多少の特殊な構文を思いつきましたが、それが何を意味するかを理解するのに役立つでしょうか?ありがとうございました。ROW NUMBER()OVER

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

また、これは失敗します。 私は特にROW NUMBER() OVERビットに興味があります。私がOVERキーワードを見つけたのは初めてです。

完全な例が必要な場合はお知らせください。私はそれを分かりやすくするために少し短くしました。あなたはそれが何ROW_NUMBER

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

にアンダースコアが欠落していることを

+4

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

答えて

9

ためProductName列を追加行には番号が付けられます。デフォルトのオーダーは昇順ですが、降順も使用できます。この関数は、T-SQLではT-SQLの外部でカーソルを取得できないため、一連のレコードを反復処理するときに行を追跡するなど、さまざまな目的に役立ちます。 @tunimise fasipeが正しくあります。_

+0

ありがとうございました!面白いのは、私が読んでいる本にはアンダースコアがないたびにいくつかの例があるからです。私は誤解しました。私はタイプミスを理解するだろうが、同じものの3つ?どうもありがとう。 –

6

注それは(商品コードで順序付けられた)それらが取得されたために、製品テーブルの各レコードの行番号を出力していることです

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

IはROW_NUMBER()関数は、ORDを決定するために過剰発現(BY ORDER)を必要とする明瞭

+0

検索される順序は、ORDER BYのProductID列で決まります。この場合ASCの順序。 –