2011-11-03 79 views
1

我有Sqlite数据库;Sqlite。数字排序

-- Описать CITY 
CREATE TABLE City (id INTEGER PRIMARY KEY, region_id NUMERIC, name TEXT, population NUMERIC, aver_salary NUMERIC, unemployment NUMERIC, education NUMERIC, wealth NUMERIC) 

的aver_salary,失业,教育和财富的存储值,如: 15,65或9,0或10,09。

我把所有的数据与Java。在Java中,我只使用字符串。

问题是,当我尝试排序是这样的:111.00之前

SELECT * FROM City ORDERY BY aver_salary DESC 

的12.00价值来。所以它比较字符串而不是值。

我是否正确我应该将Java数据类型更改为double,以便在sqlite中正确排序这些值?

回答

0

那么一切问题都解决了。

我所做的是: 1.在SQLite中将NUMERIC更改为REAL 2.在Java中将字符串更改为Double。

一切工作正常。

0

排序(ORDER BY)在SQLite中,而不是Java。所以它应该按数字排序。

如果您之后在Java 之后排序“错误”。所以我猜想,是的,在Java中使用Double not String来表示这些值,因为它们是数字。但是你也应该删除Java排序。

+0

我没有用Java排序。我在Sqlite浏览器中浏览数据。 SQkit对字符串aver_salary进行排序不像double->这是问题。 –