sql >> Databáze >  >> RDS >> Sqlserver

DESC a ASC jako parametr v uložené proceduře

Číslo řádku se nevyhodnocuje na každém řádku, nicméně příkazy typu case jsou, takže zůstanete u rownum bez ohledu na velikost písmen.

Zkuste místo toho toto:

            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. Naplánovaná událost mysql přestane fungovat, jakmile je vytvořena a spuštěna 2. událost

  2. Jak vybrat ID řádku mysql pro klauzuli WHERE na UPDATE, INSERT, DELETE přes php?

  3. implementace UNIQUE napříč propojenými tabulkami v MySQL

  4. Nasazení relačních databází MySQL na Ubuntu 12.04 (Precise Pangolin)