IT STUDY LOG
[Oracle] 서브쿼리 - 단일행/단일열 서브쿼리 본문
# 단일행, 단일열 서브쿼리
- =, >, <, >=, <=, <>, !=, ^= 와 같은 비교연산자를 사용했을 경우 서브쿼리 결과가 단일행이며 단일열이어야 함
SELECT절
SELECT empno, ename, deptno, sal, -- ① 메인 쿼리절
(SELECT ROUND(AVG(sal)) FROM emp) "avg_sal" -- ② 서브 쿼리절
FROM emp;
-- 차라리 서브쿼리를 별도로 실행한 후 명시적으로 컬럼명으로 쓰는 것이 더 효율적일 수 있음
FROM절
테이블명, 컬럼명 규칙
- 첫번째 글자는 영어, 한글로 시작
- 두번째 글자에 숫자(0~9), 특수문자(_, $, #) 가능
SELECT *
FROM (SELECT job, ROUND(AVG(sal)) "avg_sal"
FROM emp
-- WHERE ROWNUM <= 3 -- 원하는 결과값이 나오지 않음
GROUP by job
ORDER BY "avg_sal" DESC)
WHERE ROWNUM <= 3;
WHERE절
SELECT empno, ename, deptno, sal
FROM emp
WHERE sal > (SELECT AVG(sal) -- 결과로 리턴되는 행의 값이 하나
FROM emp);
'computer science > database' 카테고리의 다른 글
[Oracle] 서브쿼리 - INLINE 뷰, WITH 구문 (0) | 2023.09.01 |
---|---|
[Oracle] 서브쿼리 - 다중행/다중열/상호연관 서브쿼리 및 기타 서브쿼리 (0) | 2023.09.01 |
[Oracle] 서브쿼리 (0) | 2023.08.31 |
[Oracle] 그룹함수 - GROUP BY의 확장 (0) | 2023.08.31 |
[Oracle] SET 연산자 (0) | 2023.08.31 |
Comments