簡體   English   中英

MariaDB將聚合函數名稱作為存儲過程參數傳遞

[英]MariaDB pass aggregate function name as stored procedure parameter

我正在寫存儲過程,該過程將聚合函數名列名作為參數並返回值(例如:('sum','age')返回值(從myTable中選擇SELECT SUM(age)))

我的代碼:

CREATE PROCEDURE sample (IN name VARCHAR(10), IN col VARCHAR(30), OUT result INT) 
BEGIN
    SELECT CONCAT( name , '(', col, ') ') INTO result FROM myTable;
END$

將其設置為FUNCTION

return CONCAT('SELECT ', name, '(', col, ') FROM myTable;');

使用准備好的語句

CREATE PROCEDURE sample (IN name VARCHAR(10), IN col VARCHAR(30), OUT result INT) 
BEGIN
    SET @sql := '';
    SET @ret := 0;

    SELECT CONCAT('SELECT ', name,  '(', col, ') INTO @ret FROM myTable') INTO @sql FROM DUAL;
    PREPARE STMT from @sql;
    EXECUTE STMT;

    SELECT @ret INTO result FROM DUAL;

    DEALLOCATE PREPARE STMT;     
END

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM