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

(感谢马克·格拉维尔

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 回答