2017-12-17 3 views
1

SQLite (버전 3.10.0, Qt 버전 5.7.1, SQL 암호화 버전 3.15.2) 용 DB 브라우저를 사용하고 있으며 정렬 할 열이 있습니다. 먼저 가장 높은 값. 내가 사용 :SQLite 용 DB 브라우저에서 Desc 및 Asc 순으로 정렬

SELECT first_name, last_name, Totalclaims 
FROM workingdata 
ORDER BY Totalclaims Desc; 

문제는 내 쿼리 $993.00보다 큰 $9920.00으로 간주되고있는 점이다. 필터가 소수 자리를 제대로 인식하지 못하고 있습니다. 이 문제를 해결하는 방법에 대한 조언이 있습니까?

+2

Totalclaims 열이 float처럼 저장되어 있습니까? 당신은 varchar가 아닌가? – danihp

+0

'ORDER BY cast (float로 (Totalclaims, '$', '')를 대체하십시오.); – tonypdmtr

+0

@tonypdmtr 필요가 없습니다. 먼저 varchar의 길이를 확인할 수 있습니다. 달러를 대체하고 부동으로 변환. –

답변

1

- tonypdmtr 썼다 : (float로서, '$', '') (대체 Totalclaims를) 제품 설명 캐스트에 의해 ORDER으로 시도;

그것은 매력처럼 작동했습니다.

0

항상 소수점 두 자리가있는 경우 먼저 Totalclaims의 길이로 정렬 한 다음 Totalclaims을 순서대로 정렬하십시오.

편집 : Totalclaims 열 밖으로

SELECT first_name, last_name, Totalclaims 
FROM workingdata 
ORDER BY length(Totalclaims) desc, Totalclaims Desc; 
1

깨끗하고 이것은 당신을 위해 그것을 주문해야합니다.

SELECT first_name, last_name, cast(replace(Totalclaims,'$', '') as SIGNED) as TotalClaims_Clean 
    FROM workingdata 
    ORDER BY Totalclaims_Clean Desc; 
관련 문제