관리 메뉴

LIFE & IT

WHERE 절 우선 처리 방법 본문

데이터베이스/Oracle

WHERE 절 우선 처리 방법

프린이! 2020. 4. 28. 19:23

오라클에서 OR , AND 처리에서 우선권은 항상 AND 가 갖는다.

그래서 검색 처리 SQL 작성시 항상 우선순위에 주의해야한다.

 

 

◎ 다중 검색 처리 SQL 쿼리

SELECT * FROM 
( 
select rownum rn, bno, title, content, writer, regdate, updatedate 
from tbl_board 
where title like '%Test%' or content like '%TEST%' 
and rownum <= 20
)
where rn > 10;

위의 SQL 진행시 원하는 값과 다른 결과를 가지게 된다.

AND 연산자우선순위가 높기 때문에 'ROWNUM' 이 20 보다 작거나 같으면서(AND) 내용이나 제목에 TEST 문자열이 있는 게시물들을 검색하게 된다.

 

원하는 결과 값을 가지기 위해서는 괄호<(, )>를 통해 아래와 같이 우선처리 방식을 변경해야한다.

 

 

◎ 괄호를 통해 우선순위 변경

SELECT * FROM 
( 
select rownum rn, bno, title, content, writer, regdate, updatedate 
from tbl_board 
where 
(title like '%Test%' or content like '%TEST%')
and rownum <= 20
)
where rn > 10;

괄호 (, ) 는 AND 연산자보다 우선순위가 높기 때문이다.

'데이터베이스 > Oracle' 카테고리의 다른 글

SQL Developer Tool 에러 관련  (0) 2019.07.24
Oracle Listener port 확인 및 변경 방법  (0) 2019.07.19