首页 > 解决方案 > 我如何在oracle sql中的if语句中比较变量与多变量

问题描述

  IF v_salary + p_value <
        ALL (v_max_salary, v_manager_salary, v_dept_salary)
  THEN
     UPDATE employees
        SET salary = salary + p_value
      WHERE employee_id = p_emp_id;
  END IF;

标签: oracleplsql

解决方案


您不必分别将其与这些值中的每一个进行比较 - 如果它们中的至少一个是正确的,那么其余的也是如此。所以:

IF v_salary + p_value < least(v_max_salary, v_manager_salary, v_dept_salary)
THEN
   UPDATE employees
      SET salary = salary + p_value
    WHERE employee_id = p_emp_id;
END IF;  

推荐阅读