MS SQL

[SQL] ORDER BY, TOP, PERCENT

goliot 2024. 6. 24. 20:40
반응형

ORDER BY

  • 검색한 결과를 정렬해서 출력해주는 명령어
SELECT nameFirst, birthYear
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear;

  • ASC = 오름차순(기본값, 생략 가능), DESC = 내림차순
SELECT nameFirst, birthYear
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC;

  • 여러 조건에 대한 정렬을 하고 싶다면?
    • 동점일 경우 다음 조건으로 넘어가는 방식
SELECT nameFirst, birthYear, birthMonth, birthDay
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC;

TOP

  • 표준은 아니고, ms sql에 있는 명령어
  • TOP을 사용하면,설정한 숫자만큼의 결과가 나타난다.
SELECT TOP (10) nameFirst, birthYear, birthMonth, birthDay
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC;

  • 퍼센트를 사용한 숫자 설정 가능
SELECT TOP 1 PERCENT nameFirst, birthYear, birthMonth, birthDay
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC;
  • 이러면 전체 행 개수의 1퍼센트 만큼의 결과가 출력된다

건너 뛰고 100등~200등을 보고싶다면

  • 이번에는 표준 문법이다.
  • OFFSET을 사용해 100~200등을 볼 수 있다.
  • OFFSET은 건너뛸 수
  • NEXT 뒤에는 출력할 수를 입력한다
SELECT nameFirst, birthYear, birthMonth, birthDay
FROM players
WHERE birthYear IS NOT NULL
ORDER BY birthYear DESC, birthMonth DESC, birthDay DESC
OFFSET 100 ROWS FETCH NEXT 100 ROWS ONLY;

 

반응형

'MS SQL' 카테고리의 다른 글

[SQL] 수치와 문자열  (0) 2024.06.24
[SQL] SELECT FROM WHERE  (0) 2024.06.24