使用NHibernate选择每第n行

时间:2012-10-15 14:37:05

标签: sql sql-server nhibernate

如何使用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

2 个答案:

答案 0 :(得分: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]

答案 1 :(得分:0)

与L2S相同 - 没有SQL,没有 easy 方法可以做到这一点。而且无论如何语法都是DBMS特有的。

相关问题