DB

[오라클] ANSI Join 에 using문 사용

조셉LEE 2024. 2. 20. 14:04
728x90
반응형

DB 기초교육이라는걸 들어봤다 기초교육이라 경력자가 뭐가 들을께 있을까 하지만 의외로 모르는것 투성이고 들을게 있다. 경력 사원으로서 부끄러운 일이지만 다아는건 아니니 알아간다는게 중요하다고 생각하고 패스

필자도 공부하다보니 ANSI 조인을 다시 보게되었다. 그래서 찾게 된게 ANSI 조인시에 조건을 거는 컬럼명이 같은경우 USING문을 사용하네

어~~~~ 내가 모르는 신기한 기능이 있다. 그래서 남긴다 내머리속에 지우개가 많은 관계로

WITH CTE AS
(
SELECT '총무' AS DEPT , '10000' AS PRICE , '항복' AS NAME FROM DUAL UNION
SELECT '영업' AS DEPT , '20000' AS PRICE , '만세' AS NAME FROM DUAL UNION
SELECT '생산' AS DEPT , '30000' AS PRICE , '탈출' AS NAME FROM DUAL
),
CTE1 AS
(
SELECT '총무' AS DEPT , '10000' AS PRICE , '길동' AS NAME FROM DUAL UNION
SELECT '영업' AS DEPT , '20000' AS PRICE , '영세' AS NAME FROM DUAL UNION
SELECT '생산' AS DEPT , '50000' AS PRICE , '조건' AS NAME FROM DUAL
)
SELECT *
  FROM CTE A
 INNER JOIN CTE1 B
 USING(DEPT)

아래처럼 사용하면 에러가 난다.

SELECT A.*
  FROM CTE A
 INNER JOIN CTE1 B
 USING(DEPT)

USING문에 들어간 컬럼명을 사용하면 오류 발생, 제외하고 하면 정상처리 이런 열심히 했더니 이건또 MSSQL에서는 사용안되네 오라클만 사용가능하고 저런 불편한점이 있다니 뭐그래도 USING문으로 줄인것만으로도 존경 쓸만하지만 이런 저런 문제로 쓰면 욕먹을듯 알고만 있는걸로 하고 패스

SELECT *
  FROM CTE A
 INNER JOIN CTE1 B
 USING(DEPT, PRICE)

이렇게 키값을 추가할수 있다. 그냥 적어봤다.

반응형
LIST

'DB' 카테고리의 다른 글

[MSSQL] 프로시져, FUNCTION, TRIGGER 전체 찾기  (0) 2024.02.22
[MSSQL] MERGE 문법  (0) 2024.02.21
[MSSQL] 날짜 구하기  (1) 2024.02.20
[MSSQL] PIVOT - 날짜 상위 10개 가져와서 PIVOT 하기  (0) 2024.02.20
트랜잭션 분리  (0) 2024.02.19