Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

DESC i ASC jako parametr w procedurze składowanej

Numer wiersza nie jest oceniany w każdym wierszu, jednak instrukcje case są tak, że utkniesz z numerem wiersza bez względu na wielkość liter.

Spróbuj zamiast tego:

            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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyższy wynik zapytania ze słowem kluczowym DISTINCT?

  2. Oblicz liczbę rekordów dla każdej daty między 2 datami

  3. SQL Server używać EXEC/sp_executesql lub po prostu zwykły sql w procedurze składowanej?

  4. SSRS wybierający wyniki na podstawie listy rozdzielanej przecinkami

  5. Rekurencyjne cte sql z poziomem hierarchii