06/06/2013, 10:55
|
| Colaborador | | Fecha de Ingreso: agosto-2006 Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 5 meses Puntos: 774 | |
Respuesta: Order by / Case y me das la razon poniendo el codigo de tu procedure :)
Esta es tu cadena:
SELECT RXFAM1, RXFAM2, RXFAM3, PSPREC, VMVNNM
FROM
(SELECT RXFAM1, RXFAM2, RXFAM3, RXFAM4, PSPREC, VMVNNM, ROW_NUMBER() OVER (ORDER BY CASE WHEN @marc = ''ok'' THEN VMVNNM END ASC, CASE WHEN @prc = ''DESC'' THEN PSPREC END DESC, CASE WHEN @prc = ''ASC'' THEN PSPREC END ASC
--aqui no hay from
) AS Registros
FROM Recursos
WHERE CPA01 LIKE @clave + ''%'') AS Resultados WHERE Registros BETWEEN 8 * @PageNumber + 1 AND 8 * (@PageNumber + 1)
y este es el codigo del procedure:
SELECT * FROM ( SELECT ROW_NUMBER()Over(ORDER BY dbo.PruebaPaginacion.Nombre ASC) AS RowNum, dbo.PruebaPaginacion.Id_Usuario ,
dbo.PruebaPaginacion.Nombre
FROM dbo.PruebaPaginacion
--aqui si hay un from
)
AS ResultadoPaginado
WHERE RowNum BETWEEN (@Pagina – 1) * @RegistrosporPagina + 1 AND @Pagina * @RegistrosporPagina
Notas una diferencia? Yo si, que esta usando un from dentro de la paginacion ;), a eso me referia con 2 from en un solo query, en el ejemplo que pones tiene 2 from pero en subquerys ;)
__________________ What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me |