gpt4 book ai didi

SQL 动态 ASC 和 DESC

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

我有以下 SQL 语句,其中 order by 子句是动态传递的。
如何将“按升序和降序排序”动态传递给 SQL?

SELECT table1.prod_id,table2.prod_name from table1 left outer join table2
ON table1.prod1 = table2.prod_id
ORDER BY CASE WHEN :odb = 1 THEN prod_id END

我要通行证 order by asc or desc动态到上面的SQL,

我怎样才能做到这一点?

最佳答案

您可以通过操作数字或数据值来解决@TonyAndrews 之类的问题。对于 VARCHAR2动态 SQL 的替代方案可能是有两个表达式:

order by
case when :sorting='ASC' then col1 end ASC,
case when :sorting='DESC' then col1 end DESC

:sorting具有值 'ASC'结果 ORDER BY变得就像是:
order by
col1 ASC,
NULL DESC

:sorting具有值 'DESC'结果 ORDER BY变得就像是:
order by
NULL ASC,
col1 DESC

这种方法的一个缺点是优化器可以跳过 SORT 操作的那些情况,因为涉及的索引使数据已经按预期排序,当使用这样的 CASE 方法时不会发生这种情况。无论如何,这将强制执行排序操作。

关于SQL 动态 ASC 和 DESC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27015623/

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