조회한 컬럼끼리 연산한 결과를 가상 컬럼으로 사용할 수 있다.
( = 테이블에 저장되는 것이 아니라는 의미)
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 절에서 연산
;
'DBMS > Oracle' 카테고리의 다른 글
[Oracle] 전년도 현재 년도에 복사, INSERT - SELECT문 , SELECT한 결과를 INSERT (0) | 2021.05.27 |
---|---|
[Oracle] 중복 데이터 찾기 / 중복 데이터 개수 찾기 GROUP BY / HAVING / COUNT (0) | 2021.03.05 |
[Oracle] UNION, UNION ALL, 집합 연산 (0) | 2021.01.13 |
[Oracle] INSERT / SELECT 결과 INSERT / INSERT INTO SELECT (0) | 2020.12.18 |
[Oracle] Create / Alter / Drop (0) | 2020.12.18 |