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

Sql Server 2008:Странна грешка в съхранена процедура

Не можете да използвате променлива в order by клауза. Вместо това трябва да направите нещо като:

order by (case when @groupBy = 'VRNOA' then VRNOA
               . . .
          end)

Бъдете внимателни обаче, защото ако колоните са от различни типове, може да се случат неочаквани неща или да получите друга грешка. (Има алтернатива за използване на динамичен SQL, но не бих го препоръчал.)

Също така името @groupby е малко подвеждащо. „Групиране“ е SQL термин, еквивалентен на „обединяване“. Не би @OrderBy или @SortBy по-подходящ?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземете най-новите актуализирани записи

  2. Разберете дали даден обект е дефинирана от потребителя таблица в SQL Server с OBJECTPROPERTY()

  3. Регистърът на транзакциите за базата данни е пълен

  4. Изпълнете SQL съхранена процедура и обработете резултатите

  5. подреждане по множество колони