DB/SQL
[SQL] ORA-1427 single-row subquery returns more than one row
키플레이어
2019. 11. 25. 18:01
반응형

ORA-1427 single-row subquery returns more than one row
subqeury 사용시 하위 쿼리의 호출값이 하나 일상일경우 발생하는 에러
SELECT
ID,
NAME,
JOB,
(SELECT * FROM JOB_COMMENT) AS CMT
FROM PEOPLE A
위와 같은 쿼리를 사용시 SUBQUERY인 'SELECT * FROM JOB_COMMENT'의 결과 값이 하나 이상일 경우 문제가 발생
- 해결방법
하나의 값이 호출되도록 변경
예제 1) PK값을 사용하여 하나의 값만 호출하도록 변경
SELECT
ID,
NAME,
JOB,
(SELECT COMMENT FROM JOB_COMMENT WHERE ID = A.ID) AS CMT
FROM PEOPLE A
예제 2) JOB_COMMENT 테이블에서 호출되는 값이 만약 모두 같은 값이라면 아래와 같이 사용해도 무방
SELECT
ID,
NAME,
JOB,
(SELECT COMMENT FROM JOB_COMMENT WHERE ROWNUM = 1) AS CMT
FROM PEOPLE A
예제2 보다는 예제1의 방식을 추천
반응형