반응형
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의 방식을 추천
반응형
'DB > SQL' 카테고리의 다른 글
[SQL] DECODE (0) | 2019.11.26 |
---|---|
[SQL] 날짜데이터(DATE) 형식 SELECT (0) | 2019.11.26 |
[SQL] rownum (0) | 2019.11.26 |
[SQL] RIGHT/LEFT(), SUBSTRING_INDEX(), SUBSTRING(), UPPER/LOWER(), REVERSE(), LTRIM/RTRIM(), LENGTH() (0) | 2019.11.25 |
[SQL] 기본적인 SQL문(CRUD) (0) | 2019.11.22 |