如何将变量传递给oracle中的min和max函数?
How to pass variables to min and max functions in oracle?
该变量包含字段的名称。我想将它传递给 min 函数,不是作为字符串而是作为字段
假设该字段是数据库 table 列的名称,那么您可以使用 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;
/
另一种方法是使用 case 语句,例如
SELECT MIN(CASE v_col_name
WHEN 'COL1' THEN COL1
WHEN 'COL2' THEN COL2
...etc...
END)
FROM tab_name;
该变量包含字段的名称。我想将它传递给 min 函数,不是作为字符串而是作为字段
假设该字段是数据库 table 列的名称,那么您可以使用 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;
/
另一种方法是使用 case 语句,例如
SELECT MIN(CASE v_col_name
WHEN 'COL1' THEN COL1
WHEN 'COL2' THEN COL2
...etc...
END)
FROM tab_name;