728x90
DB 컬럼을 정렬할 때
간혹 컬럼 data가 문자+숫자로 되어 있어서 정렬이 이상하게 될 때가 있다.
가령 아래와 같다.
SELECT * FROM VirtualMachines;
이런 경우에는 SELECT * FROM VirtualMachines ORDER BY VMName;
이렇게 수행해도 같은 결과가 나온다.
숫자의 정렬방식은 1, 10, 2, 3, 4, 5, 50 ... 이런 식이기 때문이다. 그럼 어떻게 변경해야할까?
SELECT * FROM VirtualMachines ORDER BY LEN(VMName), VMName;
이런식으로 변경해주면 된다.
LEN 이란 문자열의 길이를 반환해주는 함수이다. (같이 알아두면 좋은 것은 DATALENGTH 함수이니, 찾아보길 바란다.)
문자열의 길이로 먼저 정렬을 하고, 그 다음 안의 값으로 정렬하겠다는 의미!
위처럼 원하는 순서로 잘 나온다!
728x90
'개발 > DBMS' 카테고리의 다른 글
Transaction - 트랜잭션 (6) | 2020.11.13 |
---|---|
JOIN 문제 해결 (0) | 2020.11.11 |
JOIN 문제 (0) | 2020.11.05 |
RDBMS 정규화(Normalization) - 2/2 (0) | 2020.09.27 |
RDBMS 정규화(Normalization) - 1/2 (2) | 2020.09.24 |
댓글