-
MySQL ORDER BY공부하기/데이터베이스 2022. 12. 6. 19:42
[기본] SELECT select_list FROM table_name ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...; [예제 1] SELECT * FROM table_name ORDER BY country, postalCode; [예제 2] SELECT orderNumber, orderlinenumber, quantityOrdered * priceEach FROM orderdetails ORDER BY quantityOrdered * priceEach DESC; [예제 2 개선] SELECT orderNumber, orderlinenumber, quantityOrdered * priceEach AS subtotal FROM orderdetails ORDER BY subtotal DESC; [FIELD 문법] FIELD(str, str1, str2, ...) [FIELD 예제 1] SELECT FIELD('A', 'A', 'B','C'); [FIELD 예제 2] SELECT FIELD('B', 'A','B','C'); [심화 예제] SELECT orderNumber, status FROM orders ORDER BY FIELD(status, 'In Process', 'On Hold', 'Cancelled', 'Resolved', 'Disputed', 'Shipped');
* 하나 이상의 열(column)로 정렬할 수 있습니다 *
* ASC는 오름차순 DESC는 내림차순을 의미합니다. *
* SELECT, FROM 다음에 실행됩니다. *
* NULL은 NULL이 아닌 값보다 낮습니다. *
* 오름차순 정렬이 디폴트값이므로 오름차순 정렬을 원할 경우 ASC를 생략할 수 있습니다. *
* 여러개의 열을 기준으로 정렬할 경우 각각의 열을 ',' 로 구분합니다. *
[예제 1]
정렬을 하지 않고 검색했을 경우
country를 기준으로 오름차순 정렬하여 검색할 경우
country를 기준으로 오름차순 정렬한 검색 결과에서 다시 postalCode로 오름차순 정렬할 경우
-> country로 검색한 검색 결과의 뭉치 내에서 다시 postalCode로 정렬하여 테이블을 보여준다.
[예제 2]
테이블의 열을 계산하여 계산한 결과값을 기준으로 정렬할 수 있습니다.
위 이미지와 같은 테이블로 보여지나 계산식의 수식이 테이블의 열 이름으로 부여돼 보여집니다.
[예제2 개선]
계산식에 이름을 부여하여 테이블의 열 이름을 지정할 수 있습니다.
[FIELD 문법]
FIELD(str, str1, str2, ...)에서 str을 찾는 문자, str을 제외한 나머지 문자중 str이 몇번째 인덱스에 위치하는지 인덱스를 반환합니다.
[FIELD 예제 1]
-> 제일 첫번째 문자 'A'를 두번째부터 n번째 문자중 찾습니다. 'A'는 첫번째 위치에 위치하여 아래 output과 같이 1이 리턴됩니다.
[FIELD 예제 2]
-> 제일 첫번째 문자 'B'를 두번째부터 n번째 문자중 찾습니다. 'B'는 두번째 위치에 위치하여 아래 output과 같이 2가 리턴됩니다.
[심화 예제]
-> ORDER BY FIELD (열이름, 정렬 순서)를 지정하여 정렬 기준을 설정하여 결과값을 확인할 수 있습니다.
위 쿼리를 실행하면 아래와 같은 결과값을 얻습니다.
+-------------+------------+
| orderNumber | status |
+-------------+------------+
| 10425 | In Process |
| 10421 | In Process |
| 10422 | In Process |
| 10420 | In Process |
| 10424 | In Process |
| 10423 | In Process |
| 10414 | On Hold |
| 10401 | On Hold |
| 10334 | On Hold |
| 10407 | On Hold |
...'공부하기 > 데이터베이스' 카테고리의 다른 글
MySQL OR Operator 요약 (0) 2023.02.08 Mysql And Operator 요약 (0) 2023.02.08 MySQL DISTINCT 요약 (0) 2023.02.08 MySQL SELECT statement (0) 2022.12.05 mysql sample database download and load (0) 2022.12.05