5

NHibernate QueryOver、HQL、または Criteria を使用して、n 行ごとに選択するクエリをどのように実装しますか?

現在、次の T-SQL クエリを使用しています。

SELECT * FROM (
    SELECT *, ROW_NUMBER() OVER (ORDER BY Id) AS [Row]
    FROM [TABLE_NAME]
) x WHERE (x.[Row] % 100) = 0

( Marc Gravellに感謝)

4

2 に答える 2

2

クロス結合でインデックステーブルを使用するソリューションを検討しましたか?つまり、各行に1からnまでの整数のインデックス付き列を使用して、必要と思われる数の行を含むテーブルがあるということです。これは、おそらくその横に日付列があるマスターデータベースにある可能性があります-この方法がどれほど有用であるかは驚くべきことです。クエリは次のようになります

SELECT * FROM (
    SELECT *, ROW_NUMBER() OVER (ORDER BY Id) AS [Row]
    FROM [TABLE_NAME]
) x INNER JOIN [Index_Table] i ON i.Id*100=x.[Row]
于 2012-11-29T05:46:50.417 に答える
0

L2S と同じ - SQL なしでこれを行う簡単な方法はありません。いずれにせよ、構文は DBMS 固有になります。

于 2012-10-15T16:27:14.560 に答える