私は、主キーとソート順を与えられたNHibernateクエリの "周囲の"行を取得する方法を探していますか?NHibernateクエリで "周囲"の行を取得
など。私はログエントリを持つテーブルを持っており、私は主キー4242と前の5つのエントリだけでなく、次の5つのエントリを日付順に(日付と主キーの間に直接関係はありません)表示します。このようなクエリは、合計で11行を返さなければなりません(どちらかの端に近くない限り)。
ログエントリテーブルは巨大なものであり、すべてを取り出して把握することはできません。
NHibernateから使用できる行番号という概念はありますか?基礎となるデータベースは、SQliteまたはMicrosoft SQL Serverのいずれかになります。
Id Time
4237 10:00
4238 10:00
1236 10:01
1237 10:01
1238 10:02
4239 10:03
4240 10:04
4241 10:04
4242 10:04 <-- requested "center" row
4243 10:04
4244 10:05
4245 10:06
4246 10:07
4247 10:08
は、我々は1237年、1238年と4239 4247.順に行を取得する必要があり、主キー4242を持つエントリを請求する場合:
編集追加されたサンプル
は、次のようなデータを想像してみてTime、Idです。
(明らかにサブクエリを含むことができる)単一のクエリのエントリを取得することは可能ですか?時間はユニークではない列なので、いくつかの項目が同じ値を持ち、この例では、ユニークな方法で解像度を変更することはできません!
宣伝通りに動作します。異なる列で並べ替える必要があるので、シーケンス列を維持することはできません。 私は非固有の列を並べ替える必要がある状況では、より多くのアイデアが歓迎されるよりも多くの状況のためにrownumソリューションを探していました:-) – HakonB
新しいセクションを参照してください。 –