티스토리 뷰

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

SQL 명령어 ORDER BY 정렬

SQL 명령어 ORDER BY 정렬


SQL 명령어 ORDER BY 정렬



1 하나의 행정렬


ORDER BY 절은 마지막으로 수행하는 절로 중간 결과 테이블에 영향을 주지 않는다. 그러나 마지막까지 선택된 행을 정렬한다. ORDER BY 


COLUM 은 오름차순(ASC) 정렬이 생략된 경우이며,  역순정렬은 DESC 로 정렬한다.


만일 COLUM 에 NULL 값이 있다면 ASC 오름차순 에서는 제일 처음에 DESC 내림차순 에서는 제일 마지막으로 정렬된다.




mysql> select * from student order by course;


+----+------+-----------+-------+--------+

| no | sno  | name      | jumsu | course |

+----+------+-----------+-------+--------+

| 10 |  109 | 김기철    |   100 |        |

|  6 |  105 | 이만수    |    70 | 과학   |

|  4 |  103 | 김말동    |    45 | 국어   |

|  2 |  101 | 김철수    |    90 | 국어   |

|  9 |  108 | 이미자    |    95 | 수학   |

|  1 |  100 | 홍길동    |   100 | 수학   |

|  5 |  104 | 정민철    |    80 | 역사   |

|  8 |  107 | 김재동    |   100 | 역사   |

|  3 |  102 | 김순이    |    30 | 영어   |

|  7 |  106 | 안철수    |    90 | 영어   |

+----+------+-----------+-------+--------+

10 rows in set (0.00 sec)


학생 성적 테이블에서 과목을 오름차순 정렬한 데이터 출력이다. 화면에서 알수 있듯이 한글의 경우 가나다 순으로 정렬되며, 자음이 같을 시엔 글

자가 만들어지는 순서대로 오름차순과 내림차순으로 정렬된다.

위 결과물에서 한가지 더 알 수 있는것은 과목이 NULL 로 값이 없을시엔 오름차순에서는 가장 먼저 출력이 되는것을 확인할 수 있다.

NULL 값은 mysql 에서 가장 작은값으로 인식된다.



2 하나 이상의 행정렬


ORDER BY 절에 여러개의 열을 지정할 수 있다.


mysql> select * from student order by name asc, jumsu desc;

+----+------+-----------+-------+--------+

| no | sno  | name      | jumsu | course |

+----+------+-----------+-------+--------+

| 10 |  109 | 김기철    |   100 |        |

|  4 |  103 | 김말동    |    45 | 국어   |

|  3 |  102 | 김순이    |    30 | 영어   |

|  8 |  107 | 김재동    |   100 | 역사   |

|  2 |  101 | 김철수    |    90 | 국어   |

|  7 |  106 | 안철수    |    90 | 영어   |

|  6 |  105 | 이만수    |    70 | 과학   |

|  9 |  108 | 이미자    |    95 | 수학   |

|  5 |  104 | 정민철    |    80 | 역사   |

|  1 |  100 | 홍길동    |   100 | 수학   |

+----+------+-----------+-------+--------+

10 rows in set (0.00 sec)



위 명령어는 이름으로 오름차순 점수로 내림차순 정렬된 출력물이다.  ORDER BY 명령어의 위와 같이 한개 이상의 열로 정렬이 가능하다.



☞  수치형 데이터 에서는 오름차운 정렬은 1 2 3 4 5 6 7 8 9 01 이고 내림차순은 10 9 8 7 6 5 4 3 2 1


이지만 문자형 숫자의 경우엔 좀 다르다. 문자형 숫자 데이터가 1 13 19 6 이 있다면 정렬은 앞자부터 1 13 19 6 이 된다.


이글이 도움이 되셨다면 아래에 로그인이 필요없는 공감 버튼을 클릭해주세요 ^^



'DEVELOPE > MYSQL&MARIADB' 카테고리의 다른 글

SQL SUBQUERY 부속질의어  (0) 2017.10.18
SQL UNION / UNION ALL  (0) 2017.10.18
SQL GROUP BY / HAVING  (0) 2017.10.17
SQL SELECT 조회, 정렬  (0) 2017.10.16
mysql 날짜 및 시간처리  (0) 2017.10.16
댓글