Edoardo Serra wrote:
> SELECT * FROM dummy ORDER BY string ASC;
> string
> --------
> 100%
> 10.1
> (2 rows)
>
> I would expect the order of the results to be '100%', '10.1'.
> Moreover, if I use the following dataset, I get the correct sorting
>
> SELECT string, ascii(substr(string, 3, 1)) FROM dummy ORDER BY
> string ASC;
> string | ascii
> --------+-------
> 10. | 46
> 100 | 48
You left out the most important piece of information -- what
collation have you configured? Many common collations ignore special
characters (except perhaps as tie-breakers), so your examples sort
based on:
'100'
'101'
versus
'10'
'100'
Both examples look right if you are using such a collation.
-Kevin