Ver Mensaje Individual
  #12 (permalink)  
Antiguo 06/06/2013, 10:55
Avatar de Libras
Libras
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