首页 > 解决方案 > 如何在 Orcale SQL 中将查询的输出声明为变量

问题描述

我有一个查询显示特定部门员工的平均工资。我使用 Oracle SQL Developer。

在此处查看表格

SELECT AVG(salary) from employees
WHERE department_id = 100

我必须在 if 语句中使用此查询的输出。例如,我需要编写一个 if 语句,如果员工的平均工资超过 10,000 个单位,则输出“超过 10,000”。

我知道如何编写 if 语句并声明一个变量。但是我不能将查询的输出声明为 var。请给我看另一个例子,这样我就可以自己完成任务了。

谢谢!

标签: sqldatabase

解决方案


为什么不使用case when如下表达式:

SELECT case when AVG(salary) > 10000 then 'More than 10000'
            else 'less than 10000'
       end as res_
 from employees
WHERE department_id = 100

或者,如果您真的想要匿名块中变量中的平均工资,那么您可以使用INTO如下:

DECLARE
  v_avg_sal number;
BEGIN
  SELECT AVG(salary) INTO v_avg_sal from employees
   WHERE department_id = 100;
  -- use v_avg_sal according to your logic here
END;
/

推荐阅读