如何使用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)
答案 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特有的。