** 서브쿼리의 결과는 가상의 테이블인 = 연산자로 판별할 수 있나요?
==> 서브쿼리의 칼럼수의 수가 1개이고 select 한 건수가 1개라면 가능합니다.
만약에 서브쿼리 결과의 건수가 여러개라면 = 연산자로 표현 할 수 없어요.
==> 다중행 연산자를 이용해야 합니다.
** max에 변수를 여러개 넣을 수 있나요?
질문을 위한 테이블 생성
ed 학생;
create table 학생(
이름 varchar2(20),
국어 number,
영어 number,
수학 number
);
질문을 위한 데이터 생성
ed 학생데이터;
insert into 학생 values('이학균',100,50,70);
insert into 학생 values('송인욱',60,70,80);
insert into 학생 values('최영록',80,80,90);
select max(국어,영어,수학) from 학생; // 불가능
select max(국어), max(영어), max(수학) from 학생; // 가능
그냥, 그렇게 만약 넣었다면
국어의 데이터가 들어가고
영어의 데이터가 들어가고
수학의 데이터가 들어가고
그 중에 가장 큰값이 뽑아지는지 알고 싶다.
==> 제일 높은 점수를 나타내라.
==> 각 과목별 최고점수 중에 가장 높은 점수를 출력
select max(국어) from 학생;
select max(영어) from 학생;
select max(수학) from 학생;
위에 것을 합치는 명령어가 있다.
union
0번째
select max(국어) from 학생
union
select max(영어) from 학생
union
select max(수학) from 학생;
애칭주고 무슨 과목인지 나타내고 싶을때
1번째
select '국어' 과목, max(국어) 점수 from 학생
union
select '영어' 과목, max(영어) 점수 from 학생
union
select '수학' 과목, max(수학) 점수 from 학생;
하나로 묶어서 점수 중에 max 하기
형태)
select max(점수) from (1번째);
2번째
select max(점수) from (
select '국어' 과목, max(국어) 점수 from 학생
union
select '영어' 과목, max(영어) 점수 from 학생
union
select '수학' 과목, max(수학) 점수 from 학생);
'JAVA > Oracle' 카테고리의 다른 글
오라클 - 질의문 예제와 풀이 (0) | 2016.06.18 |
---|---|
오라클 - 자료의 수정과 자료의 삭제 update, delete 명령어 (0) | 2016.06.18 |
오라클 - outter join 설명 및 예제 (0) | 2016.06.18 |
오라클 명령어 - group by 와 having 설명 및 예제 (0) | 2016.06.18 |
오라클 - references 관련 설명 및 예제 및 개체무결성과 참조무결성 (2) | 2016.06.18 |