Oracle 12c 이상 기준으로 다음 SQL 뒤에 붙였을 때 오류가 … | [SQLD] SQL 개발자 기출유형 모의고사 8회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 8회
Oracle 12c 이상 기준으로 다음 SQL 뒤에 붙였을 때 오류가 발생하는 것은?

[재고]

품번수량
P150
P240
P340
P430
P520
SELECT 품번, 수량
  FROM 재고
1
ORDER BY 2 DESC OFFSET 1 ROWS FETCH NEXT 2 ROWS ONLY
2
FETCH FIRST 3 ROWS ONLY ORDER BY 수량 DESC
3
FETCH FIRST 60 PERCENT ROWS ONLY
4
ORDER BY 수량 DESC FETCH FIRST 3 ROWS WITH TIES
해설

Oracle 의 행 제한절(OFFSET·FETCH)은 SELECT 문의 맨 끝, 즉 ORDER BY 뒤에만 쓸 수 있어 FETCH 를 먼저 쓰고 ORDER BY 를 뒤에 두면 구문 오류가 난다.

FETCH 뒤에는 정확히 n행만 자르는 ONLY 나 n번째와 같은 값을 함께 내는 WITH TIES 중 하나를 붙인다.

  • WITH TIES 는 세 번째 행과 수량이 같은 행까지 포함해 돌려준다.
  • ORDER BY 에 열 번호를 쓰고 OFFSET 1 ROWS 로 첫 행을 건너뛰는 것도 정상 구문이다.
  • ORDER BY 없이 FETCH 만 써도 실행되며 PERCENT 로 비율만큼 행을 자를 수 있다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 8회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기