이 top 쿼리 뭐가 문제인가요? 0 7 2,153

by Vampirejk [SQL Query] [2013.07.03 16:24:50]


select TOP 1 * 
from if_rms_erp_ttm
where TM_NO = 'NACRNC278011' AND R_CLASS <> '2'
ORDER BY R_NUMBERING ASC;

위에 쿼리 뭐가 문제인가요;;

by 용근님 [2013.07.03 16:27:27]

질문을 오라클로 올리셨는데.. mssql 말씀하시는건가요?

top 1 은 mssql 문법 같네요


by Vampirejk [2013.07.03 16:29:01]
오라클 답변인데요 오라클도 TOP 1 이렇게 쓰지 않아요?

by 용근님 [2013.07.03 16:31:51]
오라클 기준으론

SELECT * FROM (
select
* from if_rms_erp_ttm
where TM_NO = 'NACRNC278011' AND R_CLASS <> '2'
ORDER BY R_NUMBERING ASC
) WHERE ROWNUM <= 1

물론 R_NUMBERING 컬럼에 인덱스가 있다면 쿼리는 조금 틀려집니다.

by 우리집아찌 [2013.07.03 16:51:09]

인덱스가 달리면  어떻게 달라지나요??


by Vampirejk [2013.07.03 16:38:24]
oracle은 top 1 라는게 없군요.. 처음알았습니다. ㅎ

by 야신 [2013.07.04 00:15:31]
TM_NO 와 R_NUMBERING 로 이루어진 결합인덱스가 있을 경우
아래과 같이 가능합니다.
인덱스명을 if_rms_erp_ttm_n1 이라하면

select --+ index_asc(xxx, if_rms_erp_ttm_n1)
          * 
from if_rms_erp_ttm xxx
where TM_NO = 'NACRNC278011' AND R_CLASS <> '2'
WHERE ROWNUM <= 1

by 우리집아찌 [2013.07.04 13:45:27]
그렇군요~~
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입