是否可以在 Oracle SQL 中将参数作为关键字传递?

问题描述

在 Oracle 19c 中,是否可以执行以下操作:

select * from my_table
order by my_col :dir

其中 :dirASCDESC。我知道我可以使用 case,但我正在寻找更简单的方法

解决方法

可能吗?是的。

SQL> select * From dept order by deptno &par_ad;
Enter value for par_ad: desc

    DEPTNO DNAME          LOC
---------- -------------- -------------
        40 OPERATIONS     BOSTON
        30 SALES          CHICAGO
        20 RESEARCH       DALLAS
        10 ACCOUNTING     NEW YORK

SQL> /
Enter value for par_ad: asc

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

SQL>