database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 29603 게시물 읽기
No. 29603
varchar로 된 숫자를 정렬하려고 합니다.
작성자
김현호(ultt)
작성일
2010-04-02 10:49
조회수
7,564

그래서,
SELECT numstr1  FROM testtable  ORDER BY CAST( `numstr1` AS DECIMAL ) DESC  LIMIT 0 , 100;
을 실행했더니 아래와 같이 순서대로 나오지 않고
이상하게 나옵니다.

| 5.70                      |
| 6.3                      |
| 6.1                      |
| 6.0                      |
| 6.3                      |
| 6.1                      |
| 6.0                      |
| 6.1                      |
| 5.9                      |
| 5.8                      |
| 6.1                      |
| 5.9                      |
| 5.8                      |
| 6.00                      |

숫자로된 문자열을 제대로 정렬하려면 어떻게 해야 할까요?

이 글에 대한 댓글이 총 2건 있습니다.

수에 소수점이 포함되어 있으므로 DECIMAL로 변경하실 때, 유효 자리수를 입력해주셔야 합니다.

그렇지 않은 경우 기본적으로 정수로 전환되며, 이때 ROUND()가 적용됩니다. 따라서 6.3이던 5.7이던 모두 6으로 변환됩니다. ( SELECT CAST( numstr1 AS DECIMAL ) FROM testtable 결과를 확인해보세요 )

 

따라서, CAST( numstr1 AS DECIMAL(10,2) ) 정도 입력하면 원하시는 결과를 얻을 수 있습니다.

박현우(lqez)님이 2010-04-02 11:16에 작성한 댓글입니다.

답변에 너무 감사드립니다.

decimal이 단순한 type이라고 생각했는데 그렇게 할수도 있었네요.

다시한번 메뉴얼한번 뒤져보고 질문해야겠다는 생각이.. --;

좋은 답변 짱입니다.^^

김현호(ultt)님이 2010-04-02 12:13에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
29606mysql 미러링을 할때.. [2]
이하사
2010-04-05
8490
29605다중값 쿼리 질문 [1]
김광수
2010-04-05
7430
29604안녕하세요 쿼리질문 입니다. [1]
투루로맨스
2010-04-05
7913
29603varchar로 된 숫자를 정렬하려고 합니다. [2]
김현호
2010-04-02
7564
29602조건에 맞는 데이타만 쿼리로 저장하는 방법을 알려주세요. [1]
황혁
2010-04-01
7432
29601쿼리가 가능한지 [1]
김성민
2010-04-01
6966
29600mysql 옵션에 대하여.. [1]
이하사
2010-03-30
7710
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다