오라클과 db2 를 같이 쓰는 중입니다.
오라클에서는 다음 쿼리처럼
select col1
, (select t2.col3
from t2
where t2.col2 = t1.col1
)
from t1
select 절에 select 를 중첩시키는 것이 가능한데,
db2 에서는 안되는 것 같더군요.
혹시 db2 에서 위 쿼리를 대체할 만한 쿼리가 있을지 궁금합니다.
두번째 경우가 아닐까요? select a.EMPNO from emp_act a where a.empno='000270'
EMPNO ------ 000270 000270 000270 000270 000270 000270 000270
7 record(s) selected.
select a.EMPNO, (select b.JOB from emp b where a.empno=b.empno) from emp_act a where a.empno='000270'
EMPNO JOB ------ -------- SQL0811N The result of a scalar fullselect, SELECT INTO statement, or VALUES INTO statement is more than one row. SQLSTATE=21000
select a.EMPNO, (select max(b.JOB) from emp b where a.empno=b.empno) from emp_act a where a.empno='000270'
EMPNO 2 ------ -------- 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK
답변감사합니다만 무슨 말씀인지 이해가..? 안긴 select 문이 한건 초과되는 결과를 리턴해서 그렇다는 뜻인가요? 제가 제시한 쿼리문장은 문법에러를 내고 있습니다.
한 줄이 아닌 경우에도 값을 보고 싶으시면 outer join을 사용해보세요.
select a.EMPNO, b.JOB from emp_act a left join emp b on a.empno=b.empno where a.empno='000270'
EMPNO JOB ------ -------- 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK 000270 CLERK
21 record(s) selected.