加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

LINQ to SQL每第N行从表

发布时间:2020-12-12 16:11:31 所属栏目:MsSql教程 来源:网络整理
导读:任何人都知道如何编写一个LINQ to SQL语句从表中返回第n行?我需要在分页数据网格中的每个页面的顶部获取该项目的标题,以便快速的用户扫描.所以如果我想要第一个记录,那么每3个之后,从以下名字: 艾米,埃里克,杰森,乔,约翰,乔希,马里贝尔,保罗,史蒂夫,汤姆 我
任何人都知道如何编写一个LINQ to SQL语句从表中返回第n行?我需要在分页数据网格中的每个页面的顶部获取该项目的标题,以便快速的用户扫描.所以如果我想要第一个记录,那么每3个之后,从以下名字:

艾米,埃里克,杰森,乔,约翰,乔希,马里贝尔,保罗,史蒂夫,汤姆

我会得到艾米,马里贝尔和汤姆.

我怀疑这可以完成… LINQ to SQL语句已经调用了ROW_NUMBER()SQL函数和排序和分页.我只是不知道如何回到第n个项目. SQL语句将像WHERE ROW_NUMBER MOD 3 = 0,但我不知道用于获取正确的SQL的LINQ语句.

解决方法

有时,TSQL是要走的路.我将使用ExecuteQuery< T>这里:
var data = db.ExecuteQuery<SomeObjectType>(@"
SELECT * FROM 
(SELECT *,ROW_NUMBER() OVER (ORDER BY id) AS [__row]
FROM [YourTable]) x WHERE (x.__row % 25) = 1");

你也可以换出n:

var data = db.ExecuteQuery<SomeObjectType>(@"
DECLARE @n int = 2
SELECT * FROM 
(SELECT *,ROW_NUMBER() OVER (ORDER BY id) AS [__row]
FROM [YourTable]) x WHERE (x.__row % @n) = 1",n);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读