SQL Server:分页查询
一、分页查询#
❓ 需求描述:客户端查询数据库数据并显示在表格中。在数据库中进行一次查询,查询结果有1050条记录,但表格单页可显示行上限: 100,这时需要给本次查询记录分配 ?
页用来显示?
可以通过固定公式进行计算(c伪代码):
#define TABLE_SHOW_ROW 100
// 在大学学生表student中查询年龄小于19岁的学生信息
char sql_stat[] = {"select stu_id, stu_name, stu_age, stu_sex, date_time "
"from student where stu_age < 19"};
int num_of_rec = sql_record_total_query(sql_stat);
char msg_page[1024] = {0};
int page;
int quotient= num_of_rec / TABLE_SHOW_ROW;
int remainder = num_of_rec % TABLE_SHOW_ROW;
if (num_of_rec > TABLE_SHOW_ROW)
{
if (remainder > 0)
page = quotient + 1;
else
page = quotient;
}
else
{
page = 1;
}
// 打印查询结果页面信息
sprintf(msg_page, "1 of %d", page);
上一页和下一页业务逻辑(c伪代码)
int offset_val;
int page_now = active_page_get(msg_page);
if (event == click_page_up) // 当客户端点击上一页
{
offset_val = (page_now - 1) * TABLE_SHOW_ROW;
--page_now;
}
else if (event == click_page_down) // 当客户端点击下一页
{
offset_val = page_now * TABLE_SHOW_ROW;
++page_now;
}
char sql_stat[1024] = {0};
sprintf(sql_stat, "select stu_id, stu_name, stu_age, stu_sex, date_time from student "
"where stu_age < 19 order by date_time "
"OFFSET %d ROWS FETCH NEXT %d ROWS ONLY", offset_val, TABLE_SHOW_ROW);
sql_record_get(sql_stat, record);
table_record_show(record);
sprintf(msg_page, "%d of %d", page_now, page);
二、参考引用#
作者:caojun97
出处:https://www.cnblogs.com/caojun97/p/17430330.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!