Tal vez el problema esta en la forma de encarar la consulta.
Finalmente probe de esta manera (mucho + simple):
Código SQL:
Ver originalORDER BY
-- Orden x marca
CASE WHEN @marca = 'marca'
THEN marca END ASC,
-- Orden x precio descendente
CASE WHEN @precio = 'desc'
THEN precio END DESC,
-- Orden x precio ascendente
CASE WHEN @precio = 'asc'
THEN precio END ASC
No sabia que se ejecutarian todos los cases que estén bajo la condición WHEN.
Es decir, si el SP recibe las variables
"marca" y "precio", ejecuta según los dos CASES correspondientes. Si en cambio solo recibe una variable,
"marca" o "precio"... ordena según dicho criterio.
Era mucho mas simple de lo que pensé.
De todas maneras si hay alguna recomendación o critica al respecto, estoy atento.