database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41358 게시물 읽기
No. 41358
조회 조건
작성자
아폴론(apollon)
작성일
2017-03-17 10:24ⓒ
2017-03-17 10:24ⓜ
조회수
6,477

select * from

( select year,month,field1,field2... from table1

union all

select year,month,field1,field2... from table2

..

..

//여기는 where절이 없음

) aa

where aa.yaar = '2017'

open;

----------------------------

질문 : table1,2에는 각각 10년이상의 데이터가 있습니다.건수는 수십만건정도

위 SQL문에서 where = '2017' 이러면 2017년도 데이터만 조회 되는데요..

 

안쪽 select문에서는 10년치 데이터를 다 조회 한 후,

where 절에서 2017년것만 조회되는건가요?

 

 

이 글에 대한 댓글이 총 3건 있습니다.

SQL 문은 작성한 그대로 실행되는 것이 아니라
가능한 범위 내에서 효율적으로 변경되어 실행됩니다.
"쿼리변환" 이라는 과정을 거치게 됩니다.
위의 경우에는 조건절이 인라인뷰 안으로 침투하여
각각의 쿼리에 침투된 조건이 붙게 됩니다.

마농(manon94)님이 2017-03-17 11:11에 작성한 댓글입니다.

마농님 말씀에 조금 추가하면

인라인뷰 select 절에 rownum이라든지 윈도우함수 등이 없어야 침투가 가능합니다. 결과 변형이 없는 한에서 침투가 가능하다고 생각하시면 될 것 같습니다.

손재균(iikii)님이 2017-03-17 11:38에 작성한 댓글입니다.

답변 감사 드립니다.

그럴 것이다~ 하는 생각만 가지고있었는데..

확실히 알게 되었습니다.

아폴론(apollon)님이 2017-03-17 13:39에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41361행열질문입니다. [1]
김경태
2017-03-18
9825
41360정렬 문의 드립니다. [1]
순간선택
2017-03-17
6447
41359이전 data [1]
마당쇠
2017-03-17
6321
41358조회 조건 [3]
아폴론
2017-03-17
6477
41356where 절 조건 만드는 질문 [2]
임재흥
2017-03-13
6249
41355리눅스 오라클 인스턴스 추가 [1]
webma
2017-03-10
6941
41354한글에 대한 RPAD 사용법 [3]
초보
2017-03-09
6595
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다