sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server 2008:Konstigt fel i lagrad procedur

Du kan inte använda en variabel i order by klausul. Istället måste du göra något som:

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

Var dock försiktig, för om kolumnerna är av olika typer kan antingen oväntade saker hända eller få ett annat fel. (Det finns ett alternativ att använda dynamisk SQL, men jag skulle inte rekommendera det.)

Även namnet @groupby är lite missvisande. "Gruppering" är en SQL-term som motsvarar "aggregation". Skulle inte @OrderBy eller @SortBy vara lämpligare?



  1. Hur man vänder ordningen på tecken i en sträng i MySQL

  2. liferay migrera data från hsql till mysql

  3. Sammanfogningstabell med delsträngsvillkor

  4. Långvarig Entity Framework-transaktion