mi mail: maxi.accotto@gmail.com Paginando dentro de SQLServer 2005 - BLOG DE MAXI ACCOTTO

BLOG DE MAXI ACCOTTO

Blog de SQLServer

Paginando dentro de SQLServer 2005

En muchas ocaciones es necesario hacer una paginacion, esta podria estar del lado de la aplicacion o bien del servidor, en este post no haremos un debate de donde es mejor ponerlo pero si mostrare dos ejemplos de paginacion para SQL2005

Primer Ejemplo

 

Use AdventureWorks

go

declare @pageNum int,@RowsPerPage int

set @pageNum = 2

Set @RowsPerPage = 20

select * from

(

SELECT row_number() over (order by CustomerID) as rownum,

Sales.SalesOrderHeader.* FROM Sales.SalesOrderHeader

) as p

where rownum between

(@pageNum - 1)*@RowsPerPage + 1

and @pageNum*@RowsPerPage

Este ejemplo es un simple select que utiliza nuevas funciones de SQL2005 como son las de ranking (row_number() en este caso) y se definen 2  variables donde una es la cantidad de registros por pagina y la otra es a la pagina que deseo entrar.

Segundo Ejemplo:

CREATE FUNCTION dbo.fn_GetTopOrders(@custid AS int, @n AS INT)

RETURNS TABLE

AS

RETURN

SELECT TOP(@n) *

FROM Sales.SalesOrderHeader

WHERE CustomerID = @custid

ORDER BY TotalDue DESC

GO

 

Probando el ejemplo:

 

 

declare @pageNum int,

@RowsPerPage int

set @pageNum = 4

Set @RowsPerPage = 20;

WITH CTE as

(

SELECT C.CustomerID,

O.TotalDue,

rank() over (partition by C.CustomerID order by TotalDue) as rankOfSale

FROM

AdventureWorks.Sales.Customer AS C

CROSS APPLY

AdventureWorks.dbo.fn_GetTopOrders(C.CustomerID, 3) AS O

)

Select * from

(

SELECT row_number() over (order by CustomerID) as rownum,

CustomerID,

[1] as Rank1,

[2] as Rank2,

[3] as Rank3

from

CTE

pivot(

sum(TotalDue) for rankOfSale in ([1],[2],[3])

) as pvt

) as P

where rownum between

(@pageNum - 1)*@RowsPerPage + 1

and @pageNum*@RowsPerPage

Espero les sea de utilidad

 

 

Comments

Cristian said:

Muy buen ejemplo muchas gracias

# September 26, 2009 10:16 AM

Upskirt Live Cam said:

I should notify my girlfriend about this.

# December 17, 2009 12:35 AM

гей клуб said:

и всё эе: мне понравилось!!

# December 17, 2009 8:07 AM

Bbw Booty Massage said:

well.. it's like I thought!

# December 19, 2009 5:18 PM

luctug said:

а все таки: превосходно!!

<a href=seks05.co.cc/armavir9 Армавире секс в контакте ру</a>: в Армавире порно знакомства icq

<a href=seks05.co.cc/petrozavodsk4 познакомлюсь для секса</a>: Петрозаводск закрытые секс знакомства

<a href=seks05.co.cc/rybinsk3 шлюха познакомится</a> интим смс знакомства в Рыбинске

<a href=seks05.co.cc/barnaul1 познакомиться с американцем</a>: хочу писать во время секса

<a href=seks05.co.cc/velikie_luki3 Луки познакомлюсь для секса с мальчиком</a>: секс вэб знакомства

<a href=seks05.co.cc/syzran2 познакомиться для виртуального секса</a> в Сызране пазнакомится

<a href=seks05.co.cc/izhevsk1 для минета</a> интимные знакомства в Ижевске

<a href=seks05.co.cc/tambov3 в контакте x</a> - 100 способов познакомиться с девушкой в Тамбове

<a href=seks05.co.cc/kovrov5 секс для женатых</a> - новый секс контакт в Коврове

<a href=seks05.co.cc/izhevsk1 хочет секса</a> хочу заняться сексом с женщиной

<a href=seks05.co.cc/kislovodsk4 бля секса</a> - Кисловодск познакомлюсь с женщиной с ребенком

<a href=seks05.co.cc/kiselyovsk8 познакомиться с молодым человеком</a> - где познакомиться с девушкой

<a href=seks05.co.cc/seversk2 секс знакомства</a> - найти любовницу в Северске за пять минут

<a href=seks05.co.cc/rybinsk3 попробывать секс с парнем</a> хочу заняться сексом в Рыбинске с сыном

<a href=seks05.co.cc/chita7 знакомства пары Чита</a>: зрелая женщина хочет познакомиться

<a href=seks05.co.cc/tobolsk5 Тобольск</a> сайт знакомств для секса

<a href=seks05.co.cc/jelista7 ищу парня для секса</a> Элиста хочу реального секса

<a href=seks05.co.cc/balashiha1 познакомиться с негром в Балашихе</a> online секс знакомства

<a href=seks05.co.cc/rybinsk3 хочет секса втроем</a> - веб знакомства для секса

# December 31, 2009 8:46 AM
Leave a Comment

(required) 

(required) 

(optional)

(required)