SQL Server 에서 [랭킹] 테이블에 ㉠~㉣ 을 실행할 때 오류가… | [SQLD] SQL 개발자 기출유형 모의고사 2회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 2회
SQL Server 에서 [랭킹] 테이블에 ㉠~㉣ 을 실행할 때 오류가 발생하는 것은?

[랭킹]

선수기록
하늘95
바다88
구름88
들꽃72
별빛60
㉠ SELECT 선수, 기록 FROM 랭킹
     ORDER BY 기록 DESC
     OFFSET 0 ROWS FETCH NEXT 3 ROWS ONLY;
㉡ SELECT 선수, 기록 FROM 랭킹
     ORDER BY 기록 DESC
     FETCH NEXT 3 ROWS ONLY;
㉢ SELECT TOP (3) 선수, 기록 FROM 랭킹
     ORDER BY 기록 DESC;
㉣ SELECT 선수, 기록 FROM 랭킹
     ORDER BY 2 DESC
     OFFSET 1 ROW FETCH FIRST 2 ROWS ONLY;
1
㉠
2
㉢
3
㉡
4
㉣
해설

SQL Server 에서 FETCH 는 ORDER BY 뒤의 OFFSET 절에 딸린 선택 구문이라, OFFSET 없이 FETCH 만 쓰면 구문 오류가 난다.

처음부터 n 건을 가져오려면 OFFSET 0 ROWS 를 함께 적거나 TOP 을 쓴다.

  • OFFSET 0 ROWS 뒤에 FETCH NEXT 를 붙인 구문은 상위 3건을 가져온다.
  • TOP (3) 과 ORDER BY 를 함께 쓴 구문은 정상 실행된다.
  • FIRST·NEXT 와 ROW·ROWS 는 같은 뜻이라 열 번호 정렬과 함께 써도 정상이다.

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

이어서 풀어보기

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