惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - 阿风的博客

高压力下正则表达式的性能瓶颈 SQL SERVER2008不在同一局域网内实现订阅发布的方法 得到一个字符串的占位长度的函数 一个类似SPY++雷达手的工具 RPM V2.2发布 关于Table Schema 一段取得数据库中所有表字段及字段中文描述的SQL语句 POP气球机v1.3 c#对调用存储过程的简化 PCPOP多功能外挂v1.1 PCPOP多功能外挂v1.0 POP气球机 关于系统的垃圾文件 关于在同个页面实现多种编码的显示方法 关于几个比较经典的SQL语句 关于容器中的控件的使用 关于文件的上传。 网站开发步骤 网页源代码的获取方法
多主键情况下的真分页存储过程
阿风的博客 · 2005-11-16 · via 博客园 - 阿风的博客

前几天刚写的,对多个主键 多表 多个字段组合查询 多字段排序的情况下实现真分页的存储过程:

CREATE procedure TEACHERS_SEARCH
@schoolid as int=0,
@teacher_name as nvarchar(50)='',
@push_status as tinyint=0,
@count as tinyint=0,  --真分页统计
@pageSize as int=10--当前页需要显示的记录数
@topSize as int=10  --包括该页前面的记录总数
as

--@status 0:全部;1:在课件区;2:在blog区;3:既在课件区又在blog区;
declare @str nvarchar(2000)
declare @str_search nvarchar(1000)

set @str_search='1=1'
if(@schoolid<>0)
 
set @str_search=@str_search+' and teacher.schoolid='+str(@schoolid)
if(@teacher_name<>'')
 
set @str_search=@str_search+' and teacher.name like '''+@teacher_name +'%'''
if(@push_status=1)
 
set @str_search=@str_search+' and  TeacherRecommand.status in (1,3)'
if(@push_status=2)
 
set @str_search=@str_search+' and  TeacherRecommand.status in (2,3)'
if(@push_status=3)
 
set @str_search=@str_search+' and  TeacherRecommand.status in (1,2)'

if(@count=0)
set @str='
  select * from (SELECT  top 
'+ str(@pageSize+' *  from  ( select top '+ str(@topSize+' Teacher.schoolid,Teacher.teacherid,teacher.name as teacher_name,school.name as school_name,teacher.email,teacher.telephone, TeacherRecommand.status,School.rainbowsite as rainbowsite
  FROM Teacher INNER JOIN
      School ON Teacher.schoolid = School.schoolid 
    LEFT OUTER JOIN
      TeacherRecommand ON Teacher.schoolid = TeacherRecommand.schoolid AND 
      Teacher.teacherid = TeacherRecommand.teacherid
  WHERE 
'+@str_search +' order by teacher.schoolid desc,teacher.teacherid desc) a
 order by schoolid asc,teacherid asc) b
 order by schoolid desc,teacherid desc
'
else
set @str='
  SELECT count(*)
  FROM Teacher INNER JOIN
      School ON Teacher.schoolid = School.schoolid 
    LEFT OUTER JOIN
      TeacherRecommand ON Teacher.schoolid = TeacherRecommand.schoolid AND 
      Teacher.teacherid = TeacherRecommand.teacherid
  WHERE 
'+@str_search
--print @str
exec (@str)
GO