1 건의
order by 검색결과




ORDER BY로 Select 결과 값을 정렬하고 싶은데 기준이 하나보다 많을 땐 어떻게 해야 할까요?

매우 간단합니다.

합치면 됩니다. 


SELECT * FROM STUDENT;


STUDENT라는 이름의 테이블에서 모든 학생의 정보를 학급(CLASS) 순서대로 열람하고 싶습니다.

1반부터 나타내기 위해서는 오름차순으로 나타내야 합니다. 

그렇다면 ORDER BY를 사용하여 간단하게 나타낼 수 있습니다. 


SELECT * FROM STUDENT ORDER BY CLASS (ASC);


뒤의 ASC는 기본값(default)이기 때문에 생략할 수 있습니다.

ASC는 in ascending order(오름차순)를 나타내는 줄임말입니다.

내림차순으로 나타내고 싶다면 ASC대신 DESC(in descending order)를 사용하시면 됩니다.

하지만 내림차순은 기본값이 아니기때문에 DESC가 반드시 있어야 합니다. 


이제 학생들을 1반부터 차례로, 그리고 거기에 더해 이름(NAME)순으로 나타내고 싶습니다. 

방법은 간단히 뒤에 덧붙여 주면 됩니다.

연습할 겸 이름은 역순(내림차순)으로 나타내보겠습니다. 


SELECT * FROM STUDENT ORDER BY CLASS (ASC), NAME DESC;


이렇게 나타내주면 1반에서 마지막반까지 학생들이 차례로 나오고,

각 반의 내부에서는 이름 기준 내림차순으로 학생들이 나타나게 됩니다. 

한글이라면 'ㅎ'으로 시작하는 학생이, 영어라면 'Z'로 시작하는 학생이 가장 먼저 나오겠습니다.