sql >> Databasteknik >  >> RDS >> Sqlserver

DESC och ASC som parameter i lagrad procedur

Radnumret utvärderas inte på varje rad, men fallsatser är så att du har fastnat med radnumret oavsett vilket fall.

Prova detta istället:

            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
                )


  1. Bild från MySQL-databas skrivs inte ut

  2. Var Postgres databasfiler sparas i ubuntu?

  3. Hur kan jag skapa främmande nycklar av texttyp i MariaDB eller MySQL?

  4. MariaDB ROWNUM() Förklarad