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

SQL Server 2008:Dziwny błąd w procedurze składowanej

Nie możesz użyć zmiennej w order by klauzula. Zamiast tego musisz zrobić coś takiego:

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

Bądź jednak ostrożny, ponieważ jeśli kolumny są różnych typów, mogą się zdarzyć nieoczekiwane rzeczy lub może pojawić się kolejny błąd. (Istnieje alternatywa dla dynamicznego SQL, ale nie polecam tego.)

Również nazwa @groupby jest trochę mylące. „Grupowanie” to termin SQL równoważny „agregacji”. Czy nie @OrderBy? lub @SortBy być bardziej odpowiednie?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zwróć wszystkie grupy plików dla bieżącej bazy danych w SQL Server

  2. Jak skonfigurować sterownik Microsoft® ODBC 11 dla SQL Server® w systemie RedHat Linux z PHP

  3. Przechowuj plik w bazie danych SQL Server przy użyciu .Net MVC3 z Entity Framework

  4. Zmodyfikuj ograniczenie CHECK w programie SQL Server za pomocą T-SQL

  5. ExecuteNonQuery zwraca -1