반응형
컬럼에 숫자만 들어가있는데
정렬을 하면
1
11
13
2
21
이런식으로 정렬되는 경우가있다
원인:
컬럼의 타입이 varchar인데 데이터에 숫자가 들어가있기 때문
해결방법:
mysql의 경우 CAST라는 연산자를 사용
CAST TYPE 종류 - binary - char - signed (부호있는숫자) - data - datetime -time - unsigned (부호없는 숫자) |
EX.
(1) 문자를 숫자로 변환
SELECT
CAST(GROUP_NAME AS UNSIGNED) as GROUP_NAME
,GROUP_TY
FROM
TABLE_GROUP
설명 -> cast연산자를 사용하고 cast type을 주고 as ~ 로 alias를 줘야함
(2)
- 문자 -> 숫자 변환
SELECT CAST('1' AS UNSIGNED) as GROUP_NAME
- 숫자 -> 문자 변환
SELECT CAST(2 AS CHAR(1)) as GROUP_NAME
EX. 정렬할때
SELECT * FROM TABLE_GROUP ORDER BY CAST(GROUP_NAME AS UNSIGNED)
반응형