Data Base_Oracle/SQL

SQL Order by(정렬), Parameter Query(매개변수 검색)

pathas 2019. 12. 31. 21:49

order by 정렬

order by : 필드 내 값들의 정렬 순서를 결정

  • asc[ending](오름차순) : ㄱ ~ ㅎ, A ~ Z, 1 ~ 999 => default
  • desc[ending](내림차순) : ㅎ ~ ㄱ, Z ~ A, 999 ~ 1 ex) 게시판 - 최신 게시글부터 조회
  • 가상필드가 올 수 있음
  • 다중정렬 가능

▷ 형식 SQL> select 필드명,,, from 테이블명,,, where 조건식
order by 필드명1 정렬기준1, 필드명2 정렬기준2 ,,,
※ 정렬기준1 부터 우선 정렬

▶ emp테이블에서 고액연봉자 순으로 정렬해서 조회
SQL> select ename as "사원명", sal 급여, sal * 12 연봉
from emp order by 연봉 desc;

사원명 급여 연봉
KING 5000 60000
FORD 3000 36000
SCOTT 3000 36000
JONES 2975 35700
... ... ...

▶ emp테이블에서 고액연봉자 순으로 정렬하되,
sal이 같은 사원이 있다면 ename을 내림차순으로 정렬
SQL> select ename as "사원명", sal 급여, sal * 12 연봉
from emp order by 연봉 desc,ename desc;

사원명 급여 연봉
KING 5000 60000
SCOTT 3000 36000
FORD 3000 36000
JONES 2975 35700
... ... ...

※ select 필드명1,필드명2,필드명3,,,, from 사이의 필드를 번호로 인식해서 정렬 가능,
가장 앞에 있는 필드명이 1이고 오름차순으로 번호를 부여받음


▶ 위의 예제를 다음과 같이 쓸 수 있음
SQL> select ename as "사원명", sal 급여, sal * 12 연봉
from emp order by 3 desc,1 desc;
---- 결과는 위와 동일 ----

Parameter Query (매개변수 인수질의 검색방법)

자주 쓰이는 SQL문장에 매개변수를 주면
실행할 때마다 다른 값을 인수로 대입하여
편리하게 인수에 맞는 데이터를 조회할 수 있음

▷ 형식) &변수명(주로 필드명으로 쓰는 경향이 있음)

▶ emp테이블에서 부서번호가 &deptno인 사원들의 이름,급여,부서번호를

   순서대로 출력하되 급여가 많은 순서(내림차순)로 정렬
SQL> select ename,sal,deptno from emp where deptno=&deptno order by 2 desc;
=> "deptno의 값을 입력하십시오" : 10

ENAME SAL DEPTNO
KING 5000 10
CLARK 2450 10
MILLER 1300 10

※ SQL Plus 명령어인 save, '/'와 함께 쓰면 SQL구문을 파일로
   저장해서 불러올 수 있기 때문에 더욱 편리하게 사용할 수 있음


매개변수를 사용하면 복잡한 SQL구문에서 인수만 바꿈으로써 필요한 정보를 조회하는 것이 가능합니다.