我正在为电视开发EPG。我需要在每个页面中显示10个频道的epg。我需要从SQL Server获取数据。调用服务器获取频道从0-9,而不是用户可能决定更改页面,这对我来说意味着我应该再次调用服务器获取频道从10-19,下一页20-29,依此类推。问题是如何在SQL Server中获取类似的组数据?
id channelNr description shortname starttime andtime
0 100 desc1 tv1 10:10:00 10:40:00
1 101 desc2 tv2 10:40:00 12:40:00
这是我的桌子的样子,但是有更多的行
您需要这样的东西-返回所需数据的CTE(公用表表达式),以及RowNum
定义行号的列;那么您可以WHERE RowNum BETWEEN 0 AND 9
先选择,然后再WHERE RowNum BETWEEN 10 AND 19
选择第二页,依此类推。
由于您要选择前10行,因此该RowNum
列必须具有一些排序条件-例如您的“频道号”或对您有意义的任何内容(我在BirthDate DESC
这里只是作为演示选择)。
这里的示例基于AdventureWorks示例数据库-您需要根据自己的需要和表/列对其进行调整:
;WITH PagedResults AS
(
SELECT
e.BusinessEntityID ,
e.NationalIDNumber ,
e.OrganizationLevel ,
e.JobTitle ,
e.BirthDate ,
e.HireDate ,
RowNum = ROW_NUMBER() OVER(ORDER BY BirthDate DESC)
FROM
HumanResources.Employee e
)
SELECT
*
FROM
PagedResults
WHERE
RowNum BETWEEN 0 AND 9
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句