我正在尝试编写一个存储过程来从数据库中提取一些汇总统计信息。
我想修改程序以允许动态选择列。
我的第一个想法是使用 Case 或 IF 语句来选择不同的列
DELIMITER//
CREATE PROCEDURE 'procStats'(IN buySell varchar(4))
SELECT
CASE
WHEN buySell = 'Buy' THEN AVG(salesTransactions.BuyPrice) AS AveragePrice,
WHEN buySell = 'Sell' THEN AVG(salesTransactions.SellPrice) AS AveragePrice,
END CASE;
MONTHNAME(salesTransactions.DateOfTransaction) as TransactionMonth
FROM
salesTransactions
GROUP BY
TransactionMonth
LIMIT 6;
END//
现在我不认为 case 语句是为此目的而设计的,而且它目前不起作用......是否有可能实现上述目标?
仅供参考 - 我完全知道我可以只选择两列,但是我不希望将这两列都公开给我的网络应用程序。