例:
select * from employee, department
where
employee.empid=?
and department.empid=?
- ?用于获取employee.empid和department.empid的相同值。
感谢您的回答。
您可以使用WITH
子句来选择参数,以便您可以在查询中访问它们,无论是在主查询中还是在某些子子查询中:
with params as
(
select
:emp_id as emp_id,
:dept_id as dept_id
from dual
)
select ...
from . ..
where x.emp_id = (select emp_id from params)
and y.emp_id <> (select emp_id from params)
and z.dept_id = (select dept_id from params);
好吧,你的查询似乎是错误的,你的问题也没有多大意义。在我看来,你应该加入这些表并使用一个参数。例如,像这样:
select *
from employee e join department d on e.deptno = d.deptno
where d.deptno = :par_deptno
你想要EMPID
作为参数;为什么?什么是EMPID
在DEPARTMENT
桌上做什么?它不属于那里。所以,你发布的任何一个例子都是错的,或者你不太明白你在做什么,或者......别的什么。
[编辑,评论后]
没有多大意义,但是 - 这就是你如何做到这一点(如果我明白你在说什么):
SQL> select e.deptno e_dept,
2 d.deptno d_dept,
3 d.dname,
4 e.ename
5 from emp e join dept d on e.deptno = d.deptno
6 join (select 10 params from dual) p on e.deptno = p.params
7 and d.deptno = p.params;
E_DEPT D_DEPT DNAME ENAME
---------- ---------- -------------- ----------
10 10 ACCOUNTING CLARK
10 10 ACCOUNTING KING
10 10 ACCOUNTING MILLER
SQL>