본문 바로가기
DBMS/Oracle

[Oracle] 조회한 가상 컬럼의 연산

by 성은2 2021. 2. 10.

 

조회한 컬럼끼리 연산한 결과를 가상 컬럼으로 사용할 수 있다.

( = 테이블에 저장되는 것이 아니라는 의미)

 

SELECT A.POINT + B.POINT AS ALLPOINT 
  FROM STUD_TABLE;

 

컬럼끼리의 연산은 WHERE, ORDER BY 절에서도 가능하다.

 

단! SQL은 내부적으로 WHERE 구문을 먼저 처리하고 SELECT 하기 때문에 

SELECT 절에서 지정한 Alias를 WHERE절에서는 사용할 수 없다. 

 

 

해결

=> SELECT절이 아닌 WHERE 절에서 컬럼끼리 연산해서 사용하면 된다. 

 

에러 구문 
SELECT A.POINT + B.POINT AS ALLPOINT
 FROM STUD_TABLE
WHERE ALLPOINT != 1 ;

-- ORA-00904: "ALLPOINT": 부적합한 식별자

 

올바른 구문 
SELECT A.POINT + B.POINT AS ALLPOINT
 FROM STUD_TABLE
WHERE A.POINT + B.POINT != 1 -- WHERE 절에서 연산
;