[英]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.