sql - 如何在 Orcale SQL 中将查询的输出声明为变量
问题描述
我有一个查询显示特定部门员工的平均工资。我使用 Oracle SQL Developer。
SELECT AVG(salary) from employees
WHERE department_id = 100
我必须在 if 语句中使用此查询的输出。例如,我需要编写一个 if 语句,如果员工的平均工资超过 10,000 个单位,则输出“超过 10,000”。
我知道如何编写 if 语句并声明一个变量。但是我不能将查询的输出声明为 var。请给我看另一个例子,这样我就可以自己完成任务了。
谢谢!
解决方案
为什么不使用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;
/
推荐阅读
- python - Logistic回归的多个问题(1.所有CV值具有相同的分数,2.分类报告和准确性不匹配)
- flutter - Flutter:创建一个没有默认构造函数的类的新实例并更改一些属性
- amazon-web-services - EMR Presto 6.3.0 未正确利用内存,因此“不同”查询速度较慢
- python - sqlalchemy 过滤少数具有不同数据类型的列
- c# - Selenium:从电子邮件文本字段/文本框中获取字符串
- java - 如何修改现有的jar文件?
- c++ - 如何动态优化多字段比较中的字段顺序
- cron - crontab 没有删除文件夹中的文件
- sql - 在 SQL Server 2012 中使用 SP_AddRole 添加角色时,数据库中已有一个名为“Test”的对象
- powershell - 使用 powershell 更新重复数组的字段值