Как я могу использовать
ORDER BY
CASE @AccountOperator
WHEN '>' THEN AccountTrxValue
END ASC,
CASE @AccountOperator
WHEN '<' THEN AccountTrxValue
END DESC
когда AccountTrxValue является псевдонимом и результатом следующего в «select»?
CASE WHEN PAA.RedeemValue>0 THEN
PAA.RedeemValue * -1
ELSE PAA.EarnValue END
AS AccountTrxValue ,
Он не принимает псевдоним из-за случая
(без использования подзапроса)
EDIT:
поэтому кто-то ответил мне, и я сделал это так:
ORDER BY
CASE
WHEN @AccountOperator IS NULL OR @AccountOperator IN ('>','=') THEN
CASE WHEN PAA.RedeemValue>0 THEN
PAA.RedeemValue * -1
ELSE PAA.EarnValue END
END DESC,
CASE
WHEN @AccountOperator = '<'THEN
CASE WHEN PAA.RedeemValue>0 THEN
PAA.RedeemValue * -1
ELSE PAA.EarnValue END
END
Как я могу написать это более коротким способом?
* Я не мог включить ноль в "в"
* Мне пришлось сделать 2 случая, потому что кажется, что «desc» должно быть написано после «end»