sql >> Database teknologi >  >> RDS >> Sqlserver

DESC og ASC som parameter i lagret procedure

Rækkenummeret evalueres ikke på hver række, men case-udsagn er, så du sidder fast med rækkenumret, uanset hvad tilfældet er.

Prøv dette i stedet:

            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. MYSQL Venstre Deltag i sidste række af resultatet

  2. Patchhistoriktabeller i Oracle Apps (11i/R12.1/R12.2)

  3. PHP rekursion hjælp nødvendig for at skabe en træstruktur

  4. Når du designer databaser, hvad er den foretrukne måde at gemme flere sande/falske værdier på?