Sql 多条件分页存储过程

shenhui_163 2010-10-21 09:16:37
小弟现在遇到一个分页的问题
情形如下.一共有五个条件要带进如下的存储过程中.当条件使用.当如果有一个条件为空或者为0,那么该条件就不能带入存储过程的条件里面.也就是说存储过程的条件根据条件的数值。可变化.

SELECT TOP (@PageSize) wordID,keyword,totalCount,monthCount,createTime
FROM (
SELECT wordID,keyword,totalCount,monthCount,createTime,
ROW_NUMBER() OVER(ORDER BY monthCount DESC) POS
FROM TSM_SearchWord
WHERE ? -- 这里条件应该如何组织
)
TSM_SearchWord
WHERE POS > ((@CurrentPage - 1) * @PageSize)
AND POS <= (@CurrentPage * @PageSize)
且不能在存储过程中拼接条件.
...全文
44 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
xiaoxiangqing 2010-10-21
要拼接的话,就要用exec
回复
王向飞 2010-10-21
SELECT wordID,keyword,totalCount,monthCount,createTime,
ROW_NUMBER() OVER(ORDER BY monthCount DESC) POS
FROM TSM_SearchWord
WHERE 1= 1
---以下条件可以作为一个整体字符串动态拼接传递进来
and col1=isnull(@col1,col1)
and col2=isnull(@col2,col2)
或者
and isnull(col1,'9999')=isnull(@col1,isnull(col1,'9999'))
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2010-10-21 09:16
社区公告
暂无公告