jerry wrote: > I have a CHAR field which is usually an integer. I would like to sort > this field as if it is an integer so that 1a 5b 10c 12xxx does not get > sorted as 10c 12xxx 1a 5b. I have successfully used something like > "ORDER BY CHARFIELDNAME - 0" which seems to convert the expression to > an integer the same way that atoi would. This is exactly what I want. I > would like to know if this is an accident or it is behavior that I can > count on for future versions of sqlite. Thank you. > > _______________________________________________ > sqlite-users mailing list > sqlite-users@sqlite.org > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users >
I would suggest that you use a cast expression to force the data to be an integer. For strings such as your examples the cast will only use the initial characters that form a valid integer. order by cast(somefield as integer) The behavior you are seeing is well defined, but I think a little less clear. The subtraction operator requires numeric arguments so sqlite will coerce the string field into a numeric value before it is passed to the subtraction operator. This coercion works in the same way as cast operator, ie it ignores any non numeric suffix. HTH Dennis Cote _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users