sql >> Base de Datos >  >> RDS >> Sqlserver

DESC y ASC como parámetro en el procedimiento almacenado

El número de fila no se evalúa en cada fila, sin embargo, las declaraciones de casos sí lo son, por lo que está atascado con el número de fila sin importar el caso.

Prueba esto en su lugar:

            ROW_NUMBER() OVER (
                ORDER BY                    
                    CASE WHEN @orderby = 0 AND @orderdir = 1 THEN ne.[time] END DESC,    
                    CASE WHEN @orderby = 0 AND @orderdir = 2 THEN ne.[time] END ASC,    
                    CASE WHEN @orderby = 1 AND @orderdir = 1 THEN ne.lastedit END DESC,
                    CASE WHEN @orderby = 1 AND @orderdir = 2 THEN ne.lastedit END ASC,
                    CASE WHEN @orderby = 2 AND @orderdir = 1 THEN ne.title END ASC
                    CASE WHEN @orderby = 2 AND @orderdir = 2 THEN ne.title END DESC
                )