2012-12-20 3 views
1

이 포함 된 VARCHAR 컬럼의 최대 값을 얻는 방법을 숫자 열이며 총 대 Varchar이다 (20) - 테이블 이름은 주문입니다 :MySQL은 - ID를 다음과 같이 나는 테이블이

ID  Total 

1  $10 

2  $1,000 

3  $1500.50 

4  300 

5  20.50 

6  -80 

을 통해
SELECT statement I would like to get the Id of the highest total i.e 3. 

SELECT ID, MAX(CONVERT(Total, SIGNED INTEGER)) AS total FROM orders 

은 총 ID가 가장 높지만 잘못된 ID입니다.

달러 기호 ($)과 쉼표 (,)을 무시하고 싶습니다.

답변

3

는 VARCHAR 필드를 자초 같은 소리에 MAX(CONVERT(replace(replace(total,',',''),'$',''), SIGNED INTEGER)) AS total

+0

이 답변이 더 좋을 것이다. –

1

저장 돈이 금액을 사용합니다.

$을 숫자로 변환하기 전에 REPLACE을 사용하여 제거 할 수는 있지만 여전히 잘못된 방법입니다.

스키마를 다시 작성하고 적절하게 입력 된 열에 금액을 저장하십시오. 이러한 문제는 발생하지 않습니다.

2

귀하의 질의는 이와 같아야합니다. 그것은 작동합니다, 나는 또한 그것을 사용했습니다.

이 시도 : 변환은 부동 소수점 또는 실수로, 숫자 값 인 경우 해당 숫자가 소수점이 있기 때문에

SELECT MAX(CONVERT({column_name}, SIGNED INTEGER)) AS {column_name or xyz_name} from {table_name} 
관련 문제