MAX 값 구하기 질문입니다. 0 9 5,835

by 지후 [MySQL] 문자 문자열 MAX 최대값 [2015.10.06 09:21:43]


문자열 최대값 구하는 질문입니다.
숫자 테이블이 아닌~ 문자 테이블입니다.
숫자형식이면 MAX를 구했을때 정상적으로 나오는데~
컬럼이 문자형식이면 MAX값이 정상적으로 나오질 않습니다.
테이블 구조는 이렇습니다.

테이블 이름 : TEST
|CODE_NAME|
|         1         |
|         2         |
|         3         |
|         4         |
|         5         |
|         6         |
|         7         |
|         8         |
|         9         |
|         10       |

여기서 MAX(CODE_NAME) 하면 최대숫자 9만 계속 나옵니다. 정상적이라면 10이 나와야 정상인데..
10이 넘어가면 최대값을 반환해주지 못하네요 ㅠ 0ㅠ; mysql 문으로 어떻게 쿼리 날려야할가요?

 

 

 

by 겸댕2후니 [2015.10.06 09:30:45]

MAX(cast(CODE_NAME as unsigned))


by 지후 [2015.10.06 09:39:28]

이렇게 하니 아무값도 나오질 않습니다. ㅠㅠ;


by 겸댕2후니 [2015.10.06 11:08:08]

아... 문자가 섞여있네요.

그런데 아무값도 안나온다구요?... 이상한데


by 거제도원주민 [2015.10.06 10:16:18]

 

 

주어진 조건상으로는  문자 C가 최대값으로 나와야 되는데

만약 쿼리조건이 문자 A보다 크거나 같은것을 제외 한것이 면

문자 9가 문자 10보다는 큰게 정상입니다.

문자크기 와 숫자크기비교는 전산에서는 다르니까요

 

 

 

 

 

 


by 지후 [2015.10.06 11:30:28]

답변해주셔서 감사드립니다.^^


by 마농 [2015.10.06 10:16:52]

그럴리가요?
MAX(code_name) 은 '9' 가 아닌 'C' 가 나오겠죠?


숫자뿐이라면 숫자형으로 바꾸어 MAX를 구하면 되는데...
문자가 섞여 있네요?
이 경우엔 요구사항을 명확하게 해주셔야 답변이 가능합니다.
문자와 숫자를 어떻게 처리해야 하는지 설명해 주세요.


by 지후 [2015.10.06 11:05:00]

다시 재 수정 하였습니다. WHERE을 주어서 숫자만 불러오게 했구요.
숫자만 불러온 상태에서 MAX를 구해도 9만 나오고 10이 나오질 않습니다. ㅠ0ㅠ;
 


by 마농 [2015.10.06 11:18:58]

숫자만 뽑는 것은 어떻게 구현했는지 궁금하네요?


문자를 그대로 MAX 하면 '9' 가 나오는게 정상이구요.
문자를 숫자로 변환하여 MAX 해야만 원하는 값이 나옵니다.


겸댕2후니 님이 제시한 방법이 안되는 이유를 모르겠구요.
명시적인 형변환을 해주는 방법입니다.
다음과 같이 묵시적 형변환을 시도해 보세요.
MAX(code_name + 0)


by 지후 [2015.10.06 11:29:52]

마농님께서 알려주신대로 묵시적형변환하니까 정상적인 값이 나옵니다.
답변 감사드립니다.ㅎ

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입