Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

DESC и ASC като параметър в съхранена процедура

Номерът на ред не се оценява за всеки ред, но операторите case са, така че оставате с rownum, без значение какъв е случаят.

Опитайте това вместо това:

            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. Прочетете данни от SqlDataReader

  2. Създайте пощенски акаунт в база данни (SSMS)

  3. Планирана поддръжка на 24/7 IS база данни в MS SQL Server

  4. Как да преобразувам формата на системната дата в дд/мм/гг в SQL Server 2008 R2?

  5. Адаптивният сървър не е наличен или не съществува грешка при свързване към SQL Server от PHP