【发布时间】:2021-06-20 08:40:03
【问题描述】:
带有define的子查询
你好,
我有一个关于在真实单词中使用 DEFINE 的问题。
我刚刚修改了讲座中的代码,在开始时定义了我们正在使用的员工,然后在代码中使用该定义的变量,如下所示:
DEFINE employee = "(select * from employees where employee_id = 145)";
-- all employees that work in the same departmant as 'defined employee'
SELECT *
FROM employees
WHERE department_id = (
SELECT department_id
FROM &employee -- here using that variable
);
这个解决方案聪明吗?你真的会这样做吗?
我的意思是,如果我们将与同一个人进行大量查询,那么稍后我们不必更改每个查询,因为我们将不得不更改 employee_id ,我们只需更改定义变量中的 id ,一切都会继续工作。
或者我是否应该定义更多变量,例如:
定义薪水 = ...
定义部门 = ...
为了内存优化,所以我们不会返回所有员工的信息,而只返回我们真正需要的信息?
问候
【问题讨论】:
-
你打算如何使用这个脚本?例如这是批处理作业的一部分吗?
-
"这是你在现实世界中会做的事情吗?"不,这不是我会做的事情。如果您想存储变量以在查询之间重复使用,请使用 PL/SQL。
标签: sql oracle query-optimization database-performance sqlperformance