0

これはmysqlで可能だと思いますが、SQL Server 2008についてはどうでしょうか?例えば:

   **ID             Type**
   11111          dgf-324-fhj
   11111          sdg-654-fhd
   22222          djg-234-dfh
   23333          uoi-738-sdf

タイプがPKであり、クエリが最初の11111行を返すとすると、次または前の行に解析するSQLステートメントを作成するにはどうすればよいですか?どんな助けや正しい方向へのポイントも素晴らしいでしょう。プログラムはasp.net/c#/visualstudio2010です、ありがとう!

4

2 に答える 2

2

テーブルは順序付けされていない行のセットを表すことに注意してください。したがって、「次」と「前」の概念は、順序を指定しない限り意味がありません。あなたの例では、順序を指定しない限り、特定のSelectステートメントがdgf-324-fhj前にsayを返すことは保証されていません。sdg-654-fhdただし、タイプ別の順序で次のようなランキング関数を使用できると仮定します。

With OrderedItems As
    (
    Select Id, Type, Row_Number() Over ( Order By Type ) As Num
    From SourceData
    )
Select Id, Type
From OrderedItems
Where Num = 2

SQLフィドルの

このアプローチには問題があることにも触れておきます。行1を照会した後、誰かが「新しい」行2になる新しい行を挿入すると、予想とは異なる結果が得られます。

于 2012-06-08T16:54:45.520 に答える
0

ページ付けに関するこの回答を見てください:SQLServerで結果をページ付けするための最良の方法は何ですか

一度に1つの行を実行したい場合は、RowNumフィルターを一度に1に変更するだけです。

于 2012-06-08T15:34:12.713 に答える