SQL/oracle
oracle SQL - 정렬 ORDER BY
jun.s.gi
2022. 12. 7. 15:15
728x90
ORDER BY 칼럼명 (as 표현식) { ASC(올림차순), DESC(내림차순) }
order by절은 지정한 칼럼을 정렬해서 보여준다. SQL문의 가장 끝에 두어야하며 asc(디폴트) 또는 desc를 지정해 오름차순 또는 내림차순으로 정렬할 수 있다.
오름차순
select emp_name, position, dept_id, hiredate
from y_emp
order by hiredate;
입사일이 가장 빠른 사원부터 순서대로 출력한다. 여기서 ASC(오름차순) 키워드는 생략가능.
내림차순
select emp_name, position, dept_id, hiredate
from y_emp
order by hiredate desc;
desc 키워드를 추가함으로써 가장 최근에 입사한 사원 순으로 결과를 정렬한다.
오라클 서버는 정렬 기준의 열의 데이터가 NULL인 경우
오름차순 정렬에서는 가장 마지막, 내림차순 정렬에서는 가장 먼저 출력된다.
여러 열을 기준으로 정렬
ASC, DESC 키워드는 열 이름마다 별도로 지정해 주어야 하며 select 절에 포함되지 않은 해당 테이블 열을 기준으로 정렬할 수 있다.
select emp_id, emp_name, dept_id, salary
from y_emp
order by dept_id, salary desc;
부서번호는 오름차순, 급여는 내림차순으로 정렬하여 출력한다.
별칭 또는 위치 값을 기준으로 정렬
select 절에서 지정한 열의 별칭 또는 위치 값을 지정하여 정렬할 수 있다.
select절의 열 순서 위치는 0부터 시작이아닌 1부터 시작.
select emp_id, emp_name, salary * 12 annsal
from y_emp
order by annsal DESC;
결과는 급여에 12를 곱한 결과를 내림차순으로 보여준다.
위 코드들과의 차이점은 annsal이라는 별칭을 통해 정렬하였다는 것이다.
그리고 annsal의 위치는 3번째이니
select emp_id, emp_name, salary * 12 as annsal
from y_emp
order by 3 desc;
이와 같이 별칭 또는 위치를 이용해 정렬할 수 있다.
728x90