Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 항목 순서를 변경하는 방법 – ORDER BY 별칭(Alias) 활용하기

MySQL에서 항목 순서를 변경하는 방법

MySQL에서 조회 결과의 항목 순서를 변경하려면 ORDER BY 절과 별칭(alias)을 함께 사용하면 됩니다. 특히 SELECT 문에서 계산된 값에 별칭을 부여한 뒤, 그 별칭을 기준으로 정렬하면 원하는 순서대로 데이터를 손쉽게 출력할 수 있습니다.

아래에서 테이블 생성부터 정렬 쿼리 실행까지 전체 과정을 단계별로 살펴보겠습니다.

1단계: 테이블 생성하기

먼저 두 개의 상품 금액 컬럼을 가진 테이블을 생성합니다.

mysql> create table DemoTable653 (Product1Amount int, Product2Amount int);
Query OK, 0 rows affected (0.42 sec)

2단계: 샘플 데이터 삽입하기

INSERT 명령어를 사용해 테이블에 여러 개의 레코드를 추가합니다.

mysql> insert into DemoTable653 values(400,250);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable653 values(500,300);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable653 values(40,400);
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable653 values(200,450);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable653 values(50,20);
Query OK, 1 row affected (0.10 sec)

3단계: 전체 레코드 조회하기

SELECT 문으로 테이블에 저장된 모든 레코드를 확인합니다.

mysql> select *from DemoTable653;

위 쿼리는 다음과 같은 결과를 출력합니다.

+----------------+----------------+
| Product1Amount | Product2Amount |
+----------------+----------------+
| 400 | 250 |
| 500 | 300 |
| 40 | 400 |
| 200 | 450 |
| 50 | 20 |
+----------------+----------------+
5 rows in set (0.00 sec)

4단계: ORDER BY로 항목 순서 변경하기

이제 두 상품 금액의 차이(Product1Amount − Product2Amount)를 계산한 뒤, 이 값에 ProductAmountDifference라는 별칭을 부여하고 해당 별칭을 기준으로 오름차순 정렬하는 쿼리를 실행합니다.

mysql> select Product1Amount, Product2Amount,
(Product1Amount-Product2Amount) as ProductAmountDifference
from DemoTable653 order by ProductAmountDifference;

실행 결과는 다음과 같습니다.

+----------------+----------------+-------------------------+
| Product1Amount | Product2Amount | ProductAmountDifference |
+----------------+----------------+-------------------------+
| 40 | 400 | -360 |
| 200 | 450 | -250 |
| 50 | 20 | 30 |
| 400 | 250 | 150 |
| 500 | 300 | 200 |
+----------------+----------------+-------------------------+
5 rows in set (0.29 sec)

결과 분석

출력 결과를 보면 두 금액의 차이가 작은 값부터 큰 값 순서로, 즉 −360 → −250 → 30 → 150 → 200 순으로 정렬되어 있는 것을 확인할 수 있습니다. 이처럼 SELECT 문에서 계산식에 별칭을 지정하고 ORDER BY 절에서 그 별칭을 참조하면, 테이블에 실제 컬럼이 없더라도 계산된 값을 기준으로 자유롭게 정렬할 수 있습니다.

참고로 내림차순으로 정렬하고 싶다면 쿼리 마지막에 DESC 키워드를 추가하여 order by ProductAmountDifference desc처럼 작성하면 됩니다.