如何使用 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
(谢谢马克·格拉维尔 https://stackoverflow.com/questions/4208366/linq-to-sql-every-nth-row-from-table)
您是否考虑过在交叉连接中使用索引表的解决方案?我的意思是,您有一个表,其中包含您认为需要的行数,并且每行都有一个从 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]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)