如何将变量传递给 oracle 中的 min 和 max 函数?

Posted

技术标签:

【中文标题】如何将变量传递给 oracle 中的 min 和 max 函数?【英文标题】:How to pass variables to min and max functions in oracle? 【发布时间】:2016-03-09 05:42:16 【问题描述】:

变量包含字段的名称。我想将它传递给 min 函数,不是作为字符串,而是作为字段

【问题讨论】:

field是指“数据库表列的名称”吗? 【参考方案1】:

假设该字段是数据库表列的名称,那么您可以使用 Native SQL 来做到这一点。以下是实现该功能的示例:

DECLARE
V_COL VARCHAR2(100) := 'COL_NAME';
V_STMT VARCHAR2(4000);
V_RESULT NUMBER;
BEGIN
V_STMT := 'SELECT MAX('||V_COL||') FROM TAB_NAME';
DBMS_OUTPUT.PUT_LINE(V_STMT);
EXECUTE IMMEDIATE V_STMT INTO V_RESULT;
DBMS_OUTPUT.PUT_LINE(V_RESULT);
END;
/

【讨论】:

【参考方案2】:

另一种方法是使用 case 语句,例如

SELECT MIN(CASE v_col_name
           WHEN 'COL1' THEN COL1
           WHEN 'COL2' THEN COL2
           ...etc...
           END)
FROM tab_name;

【讨论】:

以上是关于如何将变量传递给 oracle 中的 min 和 max 函数?的主要内容,如果未能解决你的问题,请参考以下文章

如何将过程中的变量值传递给 Apex 中的 Javascript 函数

PL/SQL:, 如何将变量传递给 SELECT 语句并返回所有结果行

如何将c#中的变量传递给前端

如何将一个道具作为变量传递给 React 中的另一个道具?

如何将awk中一个变量的值传递给shell中的变量

如何将类名作为变量传递给ruby中的另一个类