支持多表分页查询的存储过程

简介: 本文转载:http://hi.baidu.com/hanrenjun/item/caa393dc811efbdd251f40ad               http://www.bhcode.net/article/20081229/3796.

本文转载:http://hi.baidu.com/hanrenjun/item/caa393dc811efbdd251f40ad

              http://www.bhcode.net/article/20081229/3796.html

同样不错的博客:http://blog.csdn.net/lyq5655779/article/details/7328560#

 

usp_PagingLarge测试脚本:

USE [Northwind]
GO

--SQL语句
SELECT  Orders.OrderID ,
        Products.ProductName AS 'Name'
FROM    dbo.Orders INNER JOIN dbo.[Order Details] ON Orders.OrderID = [Order Details].OrderID INNER JOIN dbo.Products ON [Order Details].ProductID = Products.ProductID
ORDER BY Orders.OrderID desc,
        Products.ProductName  asc    
        
/*

  AAAA   AAAA   AAAA   AAAA  RRRRR   GGGG  HH  HH  ######
 AA  AA AA  AA AA  AA AA  AA RR  RR GG  GG HH  HH  ######
 AA  AA AA  AA AA  AA AA  AA RR  RR GG     HH  HH   ####
 AAAAAA AAAAAA AAAAAA AAAAAA RRRRR  GG GGG HHHHHH    ##
 AA  AA AA  AA AA  AA AA  AA RR  RR GG  GG HH  HH
 AA  AA AA  AA AA  AA AA  AA RR  RR  GGG G HH  HH    ##

*/


DECLARE	@return_value int

EXEC	@return_value = [dbo].[usp_PagingLarge]
		@TableNames = N'dbo.Orders INNER JOIN dbo.[Order Details] ON Orders.OrderID = [Order Details].OrderID INNER JOIN dbo.Products ON [Order Details].ProductID = Products.ProductID',
		@PrimaryKey = N'Orders.OrderID',
		@Fields = N'Orders.OrderID ,Products.ProductName as Name',
		@PageSize = 20,
		@CurrentPage = 2,
		@Filter = NULL,
		@Group = NULL,
		@Order = N'Orders.OrderID desc,Products.ProductName  asc'


GO

  

proc_ListPage测试脚本:

USE [Northwind]
GO

--SQL语句
SELECT  Orders.OrderID ,
        Products.ProductName
FROM    dbo.Orders INNER JOIN dbo.[Order Details] ON Orders.OrderID = [Order Details].OrderID INNER JOIN dbo.Products ON [Order Details].ProductID = Products.ProductID
ORDER BY Orders.OrderID desc,
        Products.ProductName  asc      
        

/*

  AAAA   AAAA   AAAA   AAAA  RRRRR   GGGG  HH  HH  ######
 AA  AA AA  AA AA  AA AA  AA RR  RR GG  GG HH  HH  ######
 AA  AA AA  AA AA  AA AA  AA RR  RR GG     HH  HH   ####
 AAAAAA AAAAAA AAAAAA AAAAAA RRRRR  GG GGG HHHHHH    ##
 AA  AA AA  AA AA  AA AA  AA RR  RR GG  GG HH  HH
 AA  AA AA  AA AA  AA AA  AA RR  RR  GGG G HH  HH    ##

*/

DECLARE	@return_value int,
		@pageCount int,
		@Counts int

EXEC	@return_value = [dbo].[proc_ListPage]
		@tblName = N'dbo.Orders INNER JOIN dbo.[Order Details] ON Orders.OrderID = [Order Details].OrderID INNER JOIN dbo.Products ON [Order Details].ProductID = Products.ProductID',
		@fldName = N'[orders].orderID,Products.ProductName',
		@pageSize = 20,
		@page = 2,
		@pageCount = @pageCount OUTPUT,
		@Counts = @Counts OUTPUT,
		@fldSort = N'[orders].orderID desc,Products.ProductName',
		@Sort = 0,--如果@fldSort字段为NULL,则@Sort也为null。
		@strCondition = NULL,
		@ID = N'Orders.OrderID',
		@Dist = 0

SELECT	@pageCount as N'@pageCount',
		@Counts as N'@Counts'


GO

  

 


  • 比较麻烦,把他记录下来。
    前台UI:

本文转载:http://www.cnblogs.com/xiachufeng/archive/2010/07/30/1788592.html

目录
相关文章
|
4月前
|
关系型数据库 MySQL 数据库
Mysql数据库 6.SQL语言 分组、分页查询
Mysql数据库 6.SQL语言 分组、分页查询
60 2
|
8月前
|
SQL API 数据库
Mybatits-plus实现简单的多表联查和分页操作
mybatits-plus提供了简单的curd单表操作API,可以使用多样的方式实现。但是多表联查的时候,我遇到了一些困难,不可以使用通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错。于是就回归到了Mapper.xml文件,这种方法实现起来简单,也可以实现动态sql,非常方便。
106 0
|
10月前
|
SQL Java 大数据
Mybatis单表操作之普通操作、模糊查询、分页查询、动态SQL
Mybatis单表操作之普通操作、模糊查询、分页查询、动态SQL
156 0
|
SQL 关系型数据库 MySQL
基础DQL(数据查询)——排序查询和分页查询
基础DQL(数据查询)——排序查询和分页查询
127 0
基础DQL(数据查询)——排序查询和分页查询
|
SQL 数据库
SQL 多表联合查询的几种方式
SQL 多表联合查询的几种方式
SQL 多表联合查询的几种方式
基础DQL(数据查询)——条件查询
基础DQL(数据查询)——条件查询
90 0
基础DQL(数据查询)——条件查询
|
SQL 关系型数据库 MySQL
MySQL查询数据表中数据记录(包括多表查询)
MySQL查询数据表中数据记录(包括多表查询)
350 0
|
SQL 关系型数据库 MySQL
MySQL 跨库分页/ 分表分页/ 跨库分页,为什么这么难?
当业务数据达到一定量级(比如:mysql单表记录量>1千万)后,通常会考虑“分库分表”将数据分散到不同的库或表中,这样可以大大提高读/写性能。但是问题来了,对于 select * from table limit offset , pagesize 这种分页方式,原来一条语句就可以简单搞定的事情会变得很复杂,本文将与大家一起探讨分库分表后"分页"面临的新问题。
146 0
|
SQL Java 数据库连接
JPA的多表复杂查询
JPA的多表复杂查询
239 0
|
关系型数据库 MySQL 数据库
Mysql查询-表数据的查询
创建一个数据库 create database python_test charset=utf8; 使用一个数据库 use python_test; 显示使用的当前数据是那个? select database(); 创建一个数据表 create table students( id int unsigned not null auto_increment primary key, name varchar(30), age tinyint unsigned default 0, high decimal(5
165 0