Sql Order By… używając `Case When` dla różnych rosnących, malejących i niestandardowych zamówień

Chcę sortować produkt według rabatu według określonych warunków

ORDER BY 
    CASE WHEN @OrderBy = 0
    THEN table.id END ASC,
    CASE WHEN @Orderby = 2
    THEN table.id END ASC,

Chcę zrobić coś takiego jak poniżej, ponieważ nie mam kolumny z rabatem w tabeli

CASE WHEN @OrderBy = 4
THEN (100-((table.price/table.oldprice)*100) as discount END ASC

ale to błąd - jak mogę sortować według rabatu?

questionAnswers(3)

yourAnswerToTheQuestion