gpt4 book ai didi

sql - Oracle动态DESC和ASC按顺序排列

转载 作者:行者123 更新时间:2023-12-04 04:54:11 25 4
gpt4 key购买 nike

Order by是动态的,但排序顺序是静态的。

SELECT ...
Order By CASE WHEN InputParam = 'PRICE' THEN OFFER_PRICE END DESC,
CASE WHEN InputParam = 'ENDING SOON' THEN EXPIRY_DATE END DESC,
CASE WHEN InputParam = 'DISCOUNT' THEN DISC_PERCENTAGE END DESC,
CASE WHEN InputParam = 'SAVING' THEN SAVING END DESC

现在,我需要确保排序顺序也是动态的。有什么方法可以使上述查询中的排序顺序动态化?

最佳答案

如果您还想使排序顺序(ASC/DESC)动态化,则可以执行以下操作:

SELECT ...
Order By CASE WHEN InputParam = 'PRICE' THEN l_so * OFFER_PRICE END,
CASE WHEN InputParam = 'ENDING SOON'
THEN l_so * (SYSDATE - EXPIRY_DATE) END,
CASE WHEN InputParam = 'DISCOUNT' THEN l_so * DISC_PERCENTAGE END,
CASE WHEN InputParam = 'SAVING' THEN l_so * SAVING END

根据您想要的排序顺序,使用包含1或-1的 l_so变量。

关于sql - Oracle动态DESC和ASC按顺序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4956120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com