Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Sql Server 2008:strano errore nella procedura memorizzata

Non puoi utilizzare una variabile in order by clausola. Invece, devi fare qualcosa del tipo:

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

Fai attenzione, però, perché se le colonne sono di tipo diverso, potrebbero accadere cose impreviste o potrebbero ricevere un altro errore. (C'è un'alternativa per usare SQL dinamico, ma non lo consiglierei.)

Inoltre, il nome @groupby è un po' fuorviante. "Raggruppamento" è un termine SQL equivalente a "aggregazione". Non @OrderBy o @SortBy essere più appropriato?