카테고리 없음
[SQL] 집합연산자
서초록
2021. 11. 10. 23:44
*집합연산자
- 집합 연산은 둘 이상의 SELECT문을 결합하는 것
- ORDER BY는 집합 연산을 적용한 최종 결과에 대한 정렬 : 맨 마지막 줄에 한 번만 기술함
* UNION ALL
SELECT PLAYER_NAME, BACK_NO, TEAM_ID
FROM PLAYER
WHERE TEAM_ID = 'K04'
UNION ALL
SELECT PLAYER_NAME,BACK_NO, TEAM_ID
FROM PLAYER
WHERE TEAM_ID = 'K06'
ORDER BY PLAYER_NAME;
- 이질적 성격의 데이터를 한꺼번에 출력하는 연산도 가능
SELECT 'T' 구분코드, PLAYER_NAME, TEAM_ID
FROM PLAYER
WHERE TEAM_ID = 'K06'
UNION ALL
SELECT 'P' 구분코드, PLAYER_NAME, POSITION
FROM PLAYER
WHERE POSITION = 'GK'
ORDER BY 구분코드, TEAM_ID;
- 대신 ORDER BY절에는 첫 번째 SELECT절에 있는 컬럼명을 사용해야함
만약 ORDER BY 구분코드, POSITION이라고하면 에러남
INTERSECT
SELECT TEAM_ID 팀코드, PLAYER_NAME 선수명, POSITION 포지션
FROM PLAYER
WHERE TEAM_ID = 'K06'
INTERSECT
SELECT TEAM_ID 팀코드, PLAYER_NAME 선수명, POSITION 포지션
FROM PLAYER
WHERE POSITION = 'GK'
- INTERSECT연산자는 IN, EXISTS 서브쿼리로도 표현 가능
- INTERSECT는 AND, UNION은 OR연산자로 표현 가능
*집합연산자에서
➀ ORDER BY는 맽 끝에 와야하고
➁ ORDER BY에는 첫번째 SELECT문의 컬럼만 올 수 있고
➂ ALIAS가 있으면 반드시 별칭으로 써야함