【问题标题】:Using a Returned Value in a SQL Function to Replace the current value在 SQL 函数中使用返回值替换当前值
【发布时间】:2022-01-17 16:52:00
【问题描述】:

我正在检索最高工资值,但我无法用它来替换员工的当前工资值。我还没有成功写出我认为必要的“SET”命令

DELIMITER $$

CREATE FUNCTION f_max_salary (p_emp_no INTEGER) RETURNS DECIMAL(10,2)
DETERMINISTIC

BEGIN

DECLARE v_max_salary DECIMAL(10,2);

SELECT
    MAX(s.salary)
INTO v_max_salary

FROM
    salaries s
        JOIN
    employees e ON e.emp_no = s.emp_no;

RETURN v_max_salary;

END$$

DELIMITER ;

【问题讨论】:

  • 如果您需要替换员工当前的工资,那么您需要更新参见dev.mysql.com/doc/refman/8.0/en/update.html。您可以通过以文本形式提供示例数据和预期结果来改进这个问题。注意你的函数在逻辑上看起来是错误的

标签: mysql sql function variables set


【解决方案1】:

请务必先使用多个值测试您的函数。在我看来,您没有按员工 ID 过滤。

谢谢, 凯蒂

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-01
  • 1970-01-01
  • 2014-04-20
  • 2013-05-21
  • 2019-12-31
相关资源
最近更新 更多