[sql]ORDER BY

1. ORDER BY 절에 칼럼(Column)명 대신에 SELECT 절에서 사용한 ALIAS 명이나 칼럼 순서를 나타내는 정수도 사용 가능 하다.

2. ASC(Ascending) : 조회한 데이터를 오름차순으로 정렬(기본 DEFAULT:생략가능) 😂
   DESC(Descending): 조회한 데이터를 내림차순으로 정렬

SELECT PLAYER_NAME 선수명,
	POSITION    포지션,
     	BACK_NO     백넘버   
  FROM PLAYER   
 ORDER BY 포지션 ASC;   --(이름으로 내림차순정렬) 
 --ORDER BY 2   
 --ORDER BY POSITION


3. SQL 문장의 제일 마지막*에 위치한다.

4. ??? 
Case3. 칼럼 순서번호 + ALIAS 명 사용 ORDER BY 절 사용

SELECT DNAME   
     , LOC AREA   
     , DEPTNO   
  FROM DEPT   
 ORDER BY 1, AREA, 3 DESC;

5. SELECT 문장 실행 순서
*GROUP BY 절과 ORDER BY가 같이 사용될 때 
  SELECT 문장은 6개의 절로 구성

1. FROM 테이블명   
2. WHERE 조건식   
3. GROUP BY 칼럼(Column)이나 표현식   
4. HAVING 그룹조건식   
------------------------------------------------------
5. SELECT 칼럼명  [ALIAS명]   
6. ORDER BY 칼럼(Column)이나 표현식;

🙄
3. 행들을 소그룹화 한다. (GROUP BY)
4. 그룹핑된 값의 조건에 맞는 것만을 출력한다. (HAVING)

6. 데이터를 정렬한다. (ORDER BY)
🙄
*ORDER BY 절에는 SELECT 목록에 나타나지 않은 문자형 항목이 포함될 수 있다.
  단, SELECT DISTINCT를 지정하거나 SQL 문장에 GROUP BY 절이 있거나 또는 
  SELECT 문에 UNION 연산자가 있으면 열 정의가 SELECT 목록에 표시되어야 한다.

*SELECT 절에 없는 EMP 칼럼을 ORDER BY 절에 사용
SELECT EMPNO,   
           ENAME   
  FROM EMP   
 ORDER BY MGR;

 결과:정상출력
(SELECT 절에서 정의하지 않은 칼럼을 사용해도 문제없음)

*인라인 뷰에 정의된 SELECT 칼럼을 메인쿼리
SELECT EMPNO   
  FROM
     (   
       SELECT EMPNO,   
                  ENAME   
         FROM EMP   
        ORDER BY MGR   🙄ORDER BY는 메인 SELECT에서만 사용되는게 아닌가봐??? 으쨋든간에 쿼리 제일 마지막에 위치하기만하면 되는듯??
     );   
  
결과:14개의 행이 선택되었다.   
(인라인 뷰의 SELECT 절에서 정의한 칼럼은 메인쿼리에서도 사용할 수 있음) 

*인라인 뷰에 미정의된 칼럼을 메인쿼리에서 사용해본다.
SELECT MGR   
  FROM
     (   
       SELECT EMPNO   
            , ENAME   
         FROM EMP   
        ORDER BY MGR  🙄SELECT에 명시되지않은 컬럼은 사용해도 되지만, 남의껀 사용 못하나봐??
     )
;   

결과: SELECT MGR FROM ; * ERROR: "MGR": 부적합한 식별자


*숫자로 정렬한다??
SELECT *
  FROM EMP 
ORDER BY 1 	🙄첫번째 컬럼 기준으로 정렬하겠다는 뜻인데... 권장하진 않아요.

댓글

이 블로그의 인기 게시물

[sql] 테이블 생성