IT STUDY LOG

[Oracle] 서브쿼리 - 단일행/단일열 서브쿼리 본문

computer science/database

[Oracle] 서브쿼리 - 단일행/단일열 서브쿼리

roheerumi 2023. 9. 1. 10:12

# 단일행, 단일열 서브쿼리

-  =, >, <, >=, <=, <>, !=, ^= 와 같은 비교연산자를 사용했을 경우 서브쿼리 결과가 단일행이며 단일열이어야 함 

 

SELECT절 

SELECT empno, ename, deptno, sal,                  -- ① 메인 쿼리절    
       (SELECT ROUND(AVG(sal)) FROM emp) "avg_sal" -- ② 서브 쿼리절 
FROM   emp; 
-- 차라리 서브쿼리를 별도로 실행한 후 명시적으로 컬럼명으로 쓰는 것이 더 효율적일 수 있음

  

FROM절 

테이블명, 컬럼명 규칙

  1. 첫번째 글자는 영어, 한글로 시작 
  2. 두번째 글자에 숫자(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);

 

 

Comments