the result of your query: all between integer and real, actually lati10 a mixture of both integer|392|integer|41|real|140.936371 integer|392|integer|41|real|140.948578 integer|392|integer|41|real|140.948578 integer|392|integer|41|real|140.951355 integer|392|integer|41|real|141.398491536317 ... integer|392|real|41.1|real|140.819427 integer|392|real|41.1|real|140.83551 integer|392|real|41.1|real|141.396450589127 integer|380|real|41.2|real|9.37497676257462 integer|380|real|41.2|real|16.6342872848924 integer|792|real|41.2|real|43.2255548289229 integer|860|real|41.2|real|66.7126410609169 integer|408|real|41.2|real|129.727571723508 integer|840|real|41.2|real|-73.970001 integer|840|real|41.2|real|-73.964172 integer|840|real|41.2|real|-73.964172 integer|840|real|41.2|real|-73.955566 also by examining the dump, alfanumerics are written with quotes which where not found. on the other side it makes no sense that the order changes depending on the filter. As I've explained when request lati10 >= 41.2 the order is correct.