您将如何使用 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
(感谢马克·格拉维尔)
您将如何使用 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
(感谢马克·格拉维尔)
您是否考虑过在交叉连接中使用索引表的解决方案?我的意思是,您有一个表,其中包含您认为需要的行数,每行中的整数索引列从 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]
与 L2S 相同 - 如果没有 SQL,就没有简单的方法可以做到这一点。无论如何,语法都是特定于 DBMS 的。