Você não pode usar uma variável na ordem
order by
cláusula. Em vez disso, você deve fazer algo como:order by (case when @groupBy = 'VRNOA' then VRNOA
. . .
end)
Tenha cuidado, porém, porque se as colunas forem de tipos diferentes, coisas inesperadas podem acontecer ou podem ocorrer outro erro. (Existe uma alternativa para usar SQL dinâmico, mas eu não recomendaria isso.)
Além disso, o nome
@groupby
é um pouco enganador. "Agrupamento" é um termo SQL equivalente a "agregação". Não @OrderBy
ou @SortBy
ser mais apropriado?