본문 바로가기

DB/SQL

[SQL] ORA-1427 single-row subquery returns more than one row

반응형

 

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의 방식을 추천

 

 

 

 

반응형